• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Node.js: przypisywanie wyniku htttp.get do zmiennej

0 głosów
350 wizyt
pytanie zadane 18 października 2020 w JavaScript przez dkrakowski Nowicjusz (140 p.)
zmienione kategorie 18 października 2020 przez ScriptyChris

W jaki sposób przypisywać do zmiennej wynik działania metody GET z modułu HTTP/HTTPS? Dla przypisania wartości do zmiennej przy próbie jej wyprowadzenia w konsoli wyświetlany jest tylko "undefined" dla zmiennej "jsonData", jeżeli wartość "parsedData" wypirintuje od razu w "res.on('end')" to wyświetla się prawidłowo, jak przypisywać odpowiedź do zmiennej w celu dalszego przetwarzania? 

const http = require('https');
var jsonData;
http.get('https://gorest.co.in/public-api/categories', (res) => {
    const { statusCode } = res;
    const contentType = res.headers['content-type'];

    let error;
    // Any 2xx status code signals a successful response but
    // here we're only checking for 200.
    if (statusCode !== 200) {
        error = new Error('Request Failed.\n' +
            `Status Code: ${statusCode}`);
    } else if (!/^application\/json/.test(contentType)) {
        error = new Error('Invalid content-type.\n' +
            `Expected application/json but received ${contentType}`);
    }
    if (error) {
        console.error(error.message);
        // Consume response data to free up memory
        res.resume();
        return;
    }

    res.setEncoding('utf8');
    let rawData = '';
    res.on('data', (chunk) => { rawData += chunk; });
    res.on('end', () => {
        try {
            const parsedData = JSON.parse(rawData);
            jsonData = parsedData;
        } catch (e) {
            console.error(e.message);
        }
    });
}).on('error', (e) => {
    console.error(`Got error: ${e.message}`);
});

console.log(jsonData);

 

1 odpowiedź

0 głosów
odpowiedź 18 października 2020 przez Wiciorny Ekspert (283,300 p.)
https://jcubic.pl/2018/05/asynchronicznosc-javascript-obietnice.html
poczytaj o asynchronicznosci, obiekcie Promise

Podobne pytania

0 głosów
1 odpowiedź 507 wizyt
0 głosów
2 odpowiedzi 825 wizyt
pytanie zadane 29 marca 2022 w JavaScript przez KubaLaska Początkujący (350 p.)
+2 głosów
2 odpowiedzi 634 wizyt

93,733 zapytań

142,669 odpowiedzi

323,287 komentarzy

63,295 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...