首页 > 其他 > 详细

如何实现一个串行promise

时间:2019-10-21 19:56:00      阅读:80      评论:0      收藏:0      [点我收藏+]

异步执行任务A、B、C,。。。。。。

1、使用数组的reduce方法,reduce里有四个参数,pre,next,index,arr,

2、如果then方法里返回的是一个promise对象,那么执行下一个then 的时候必定是在上一个then执行完之后执行

代码如下

var createPromise = function(time) {
    return (resolve, reject)=>
    new Promise((resolve, reject)=>{
        setTimeout(()=>{
            console.log(‘timein‘+time)
            resolve();
        }, time*1000)
    })
}

function serpromise(arr) {
    arr.reduce((pre, next, index, carr)=>{
        return pre.then(next)
    }, Promise.resolve())
}

var arr=[createPromise(2),createPromise(1),createPromise(3),createPromise(4),createPromise(5)];
// Promise.resolve().then(createPromise(2)).then(createPromise(1))
serpromise(arr)

  

 

如何实现一个串行promise

原文:https://www.cnblogs.com/windseek/p/11715371.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!