我正在尝试利用 es7 异步功能,即

async function stepVerifyIdentity(nextState, replace, callback) {
    const val1 = await promise1('Param1')
    const val2 = await promise2('Param2')
    const val3 = await promise3('Param3')
    if (!val1 && (!val2 || !val3)) {
        console.log('Do something')
    }
}

这里所有 promise* 函数都进行 ajax 调用并返回 truefalse 如果传递的参数满足 ajax 响应,我相信我不能连续使用 3 个等待,因此需要一种方法来等待所有这些调用返回他们的值(value)观不知何故。

最佳答案

您可以根据需要多次使用 await,因此您的示例可以满足您的需求。

但是,也许您会认为 Promise.all 更漂亮:

async function stepVerifyIdentity(nextState, replace, callback) {
  const [ val1, val2, val3 ] = await Promise.all([
    promise1('Param1'),
    promise2('Param2'),
    promise3('Param3')
  ])

  if (!val1 && (!val2 || !val3)) {
    console.log('Do something')
  }
}

关于javascript - 在一个异步函数中等待多个 promise ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39371954/

10-14 15:28