第一种:使用map实现promise队列
初始值为promise.resolve()为成功状态,每次成功都返回一个promise,依次执行~
function num(num){
let promise = Promise.resolve();
num.map(v=>{
promise = promise.then(res => {
return new Promise(resolve => {
setTimeout(()=>{
console.log(v);
resolve()
},1000)
})
})
})
}
调用封装好的方法,以一段数字输出为例:
num([1,2,3,4,5])
输出:
这样就使数字按照队一个一个输出出来
第二种:使用reduce方法实现promise队列
function num(num) {
num.reduce((promise, v) => {
return promise.then(res=>{
return new Promise(resolve=>{
setTimeout(()=>{
console.log(v);
resolve()
},1000)
})
})
},Promise.resolve())
}
数组的reduce方法不清楚的小伙伴可以点击进行学习
和上面方法一样,调用封装好的方法,以一段数字输出为例:
num([1,2,3,4,5])
输出