如何实现一个串行promise
异步执行任务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)
学而不思则罔,思而不结则殆,结而不看,一事无成