javascript - 在一个异步函数中等待多个 promise

标签 javascript async-await ecmascript-next

我正在尝试利用 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')
    } 
}

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

最佳答案

您可以根据需要多次使用 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/

相关文章:

javascript - 使用无效合并或可选链接进行安全解构

c# - 即使没有异步,CallContext.LogicalGetData 也会恢复。为什么?

javascript - 在 React 中使用方法装饰器时绑定(bind) this

c# - 在 Action 中使用带有 await 的 ForEachAsync 时不等待

c# - 如何使用 async 和 wait 发布 Web api 调用

javascript - 将函数 * 提升为异步函数 *?

javascript - Webpack 无法读取 ReactJS props

javascript - 带 z 索引的事件冒泡

javascript - JQuery 图像 slider 使用 "Cycle Plugin": Why Won't My Images "Cycle"?

javascript - HTML 表单自动填充