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

await nie czeka na wykonanie funkcji

Object Storage Arubacloud
0 głosów
159 wizyt
pytanie zadane 18 listopada 2019 w JavaScript przez Krzysztofson Użytkownik (620 p.)
zmienione kategorie 18 listopada 2019 przez Comandeer

Cześć mam problem z asynchronicznym wykonaniem kodu w node.js. Funkcja w kontrolerze nie czeka na zakończenie działania serwisu i zwraca pusty json, zanim nadejdzie wartość zwracana z serwisu.

kod Kontrollera

exports.trip = async (req, res, next) => {
    try {
        let result = await osrmService.trip(req.body.options);
        console.log(result) //result is undefined
        res.status(200).json({
            route: result
        });
    } catch (error) {
        next(error)
    }
}

kod Serwisu

exports.trip = (options, callback) => {
    osrm.trip(options, function(err, result) {
        if (err) throw err;
        //console.log(result)
        callback(result);
    });
}

Jak temu zaradzić? Czy jedyna opcja to zwrócić promise?

komentarz 18 listopada 2019 przez ScriptyChris Mędrzec (190,190 p.)

Funkcja trip przyjmuje 2 argumenty: options oraz callback. Ty przekazujesz tam tylko pierwszy jako req.body.options. Podejrzewam więc (abstrahując od braku Promisa), że w konsoli dla 5 linii powinien być błąd w stylu ReferenceError: callback is not defined.

1 odpowiedź

0 głosów
odpowiedź 18 listopada 2019 przez Comandeer Guru (600,810 p.)
Tak byłoby najsensowniej. W końcu skrypt musi wiedzieć, na co czekać.

Podobne pytania

0 głosów
1 odpowiedź 88 wizyt
pytanie zadane 24 grudnia 2022 w JavaScript przez rafaeru Początkujący (330 p.)
0 głosów
4 odpowiedzi 653 wizyt
pytanie zadane 5 marca 2019 w JavaScript przez PROFF Obywatel (1,180 p.)
+1 głos
2 odpowiedzi 647 wizyt
pytanie zadane 2 lipca 2021 w C# przez tomasz12345 Użytkownik (750 p.)

92,555 zapytań

141,402 odpowiedzi

319,544 komentarzy

61,939 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...