这是我文件的布局:
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
并作为成功发送响应。
我的问题是,当我检查状态代码时,它从不携带函数中设置的值。不是
等待
希望使函数按顺序执行?