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?