Это макет моего файла:
router.post('/data/*', async function (req, res, next) {
var status1 = 0, status2 = 0, status3 = 0;
await function1(req, (err,res) => {
if (err) {
status1 = 400
} else {
status1 = 200
}
})
await function2(req, (err,res) => {
if (err) {
status2 = 400
} else {
status2 = 200
}
})
await function3(req, (err,res) => {
if (err) {
status3 = 400
} else {
status3 = 200
}
})
//
// Here, all status variables are zero - why?
//
if (status1 > 200 || status2 > 200 || status3 > 200) {
res.status(400)
res.send({'resp':'Error'})
} else {
res.status(200)
res.send({'resp':'Success'})
}
}
У меня есть три функции, вызванные с await
для обработки полезной нагрузки POST
.Каждая функция может или не может завершиться успешно.Сейчас я перехожу к опции, где, если какая-либо функция является ошибкой, я рассматриваю статус как 400
и отправляю ответ соответственно.Если нет, то я рассматриваю статус как 200
и отправляю ответ как успешный.
Мой вопрос заключается в том, что, когда я проверяю код состояния, он никогда не переносит значение, установленное в функциях.Не ожидается ли await
, что функции будут выполняться последовательно?