繁体   English   中英

在一个异步函数中等待几个promise

[英]Awaiting several promises in one async function

我试图利用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等待,因此需要一种方法来等待所有这些调用返回他们的价值不知何故。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM