2021-06-28 将多个异步方法同步执行

var p1 = function (){
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('p1')
}, 1000);
})
}
var p2 = function (){
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('p2')
}, 500);
})
}
var p3 = function (){
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('p3')
}, 100);
})
}
var fnArr = [p2, p1, p3]
var run = function (arr, start = 0){
if(start > arr.length || start < 0) return; // 参数start不能超过 arr.length,不能为负数
var next = function (i){
if(i < arr.length){
var fn = arr[i];
fn().then(res => {
console.log(res);
i++;
next(i)
})
}
}
next(start)
}
run(fnArr)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容