nodejs - область действия функции с ожиданием - PullRequest
0 голосов
/ 19 октября 2018

Это макет моего файла:

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, что функции будут выполняться последовательно?

...