这是我文件的布局:
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
不能使这些功能按顺序执行吗?