• 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

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
193 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 (606,240 p.)
Tak byłoby najsensowniej. W końcu skrypt musi wiedzieć, na co czekać.

Podobne pytania

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

93,164 zapytań

142,176 odpowiedzi

321,938 komentarzy

62,493 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 688p. - dia-Chann
  2. 676p. - CC PL
  3. 675p. - Łukasz Piwowar
  4. 664p. - Marcin Putra
  5. 662p. - Łukasz Eckert
  6. 649p. - Michal Drewniak
  7. 641p. - rucin93
  8. 641p. - rafalszastok
  9. 629p. - Piotr Aleksandrowicz
  10. 621p. - Dawid128
  11. 606p. - Mariusz Fornal
  12. 602p. - Michał Telesz
  13. 597p. - Hubert Chęciński
  14. 572p. - ssynowiec
  15. 527p. - Adrian Wieprzkowicz
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...