nodejs-等待的功能范围

时间:2018-10-19 08:38:40

标签: node.js function scope

这是我文件的布局:

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不能使这些功能按顺序执行吗?

0 个答案:

没有答案