Promise.all详解

        let p = new Promise((resolve,reject)=>{
            console.log('第一个异步任务开始了');
            setTimeout(() => {
                resolve('第一次异步结果')
            }, 1000);
        })
        let p2 = new Promise((resolve,reject)=>{
            console.log('第二个异步任务开始了');
            setTimeout(() => {
                resolve('第二次异步结果')
            }, 2000);
        })
        let p3 = new Promise((resolve,reject)=>{
            console.log('第三个异步任务开始');
            setTimeout(() => {
                resolve('第三次异步结果')
            }, 3000);
        })



        Promise.all([p,p2,p3]).then(arr=>{
            console.log('三个异步都结束了');
        })

        // 并发:

        // p p2 p3 同时触发。等三个都接受在执行下一个任务。

        let state = new Date().getTime();
        Promise.all([p,p2,p3]).then(arr=>{
            let timer = (new Date().getTime()) - state;
            console.log('三个异步都结束了');
            console.log(arr);
            console.log(timer);
        },()=>{
            console.log('有一个拒绝的');
        })

            // arr 数组

            // 数组元素:对应的promise对象.[[PromiseResult]]

总结 

         * Promise.all()

         * 作用:可以同时触发多个promise,用于处理并发任务,

         *      等多个异步都结束的在执行下一个任务

         * 参数:元素:元素promise实例对象

         * 返回值:全新的promise实例

         *  [[PromiseResult]]:[p结果,p2结果,p3结果]

         * then  三个实例对象都变为 已接受状态 时候触发回调函数

         *      回参:数组:数组元素为三个实例对象的[[promiseResult]],

             话句话三个实例对象的运算结果

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Promise.all 方法是 JavaScript 中的一个高阶函数,用于将多个 Promise 对象组合成一个新的 Promise 对象。它接收一个 Promise 对象数组作为参数,并返回一个新的 Promise 对象。 当传入的 Promise 对象数组中的所有 Promise 对象都变为 resolved 状态时,返回的 Promise 对象才会变为 resolved 状态。如果数组中任意一个 Promise 对象变为 rejected 状态,则返回的 Promise 对象会立即变为 rejected 状态。 Promise.all 方法的使用方式如下: ```javascript const promises = [promise1, promise2, promise3]; Promise.all(promises) .then((results) => { // 所有 Promise 对象都已经 resolved console.log(results); }) .catch((error) => { // 任意一个 Promise 对象变为 rejected console.error(error); }); ``` 在上述示例中,`promises` 是一个包含多个 Promise 对象的数组。当所有的 Promise 对象都变为 resolved 状态时,`then` 方法中的回调函数会被执行,并且传入一个包含所有 resolved 值的数组 `results`。如果其中任意一个 Promise 对象变为 rejected 状态,则 `catch` 方法中的回调函数会被执行,并且传入第一个变为 rejected 状态的 Promise 对象的错误信息。 需要注意的是,传入 Promise.all 的数组中可以包含不仅仅是 Promise 对象,也可以包含其他类型的值。在这种情况下,这些值会被隐式地转换为 resolved 状态的 Promise 对象。 希望以上解释对你有所帮助!如果你还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值