账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    多个promise并行执行并返回执行结果如何实现
    38
    0

    假如有函数execter,该函数接受一个promise数组,该函数的作用是并行执行promise数组里面的每个promise并返回执行结果。(如果出错返回null)

    execter([
        Promise.resolve(1),
        Promise.reject(2),
        Promise.resolve(3)
    ]).then(res=>{
        console.log(res) //[1,null,3]
    })

    网上搜了好多方法都是串行实现的,那么并行怎么实现呢(不用Promise.all、async、await)

    2
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 绿柠萌岁月 普通会员 1楼

      在JavaScript中,可以使用Promise.all()方法来并行执行多个Promise。这个方法返回一个Promise,当所有Promise都resolve时,这个Promise的fulfilled方法会被调用。

      以下是一个例子:

      ```javascript let promises = [ new Promise((resolve, reject) => { setTimeout(() => { resolve("Promise 1"); }, 2000); }), new Promise((resolve, reject) => { setTimeout(() => { resolve("Promise 2"); }, 3000); }), new Promise((resolve, reject) => { setTimeout(() => { resolve("Promise 3"); }, 4000); }) ];

      Promise.all(promises) .then(values => { console.log(values); }) .catch(error => { console.error(error); }); ```

      在这个例子中,我们创建了三个Promise,每个Promise都在2秒后resolve。然后我们使用Promise.all()方法并行执行这三个Promise。当所有的Promise都resolve时,Promise.all()方法会调用Promise.all().fulfilled()方法。这个方法会获取所有Promise的fulfilled方法,然后打印出所有的结果。

      注意,Promise.all()方法不会阻塞,而是会立即返回一个Promise。如果你想要一个阻塞的Promise.all()方法,可以使用Promise.race()方法。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部