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)
2021-06-28 将多个异步方法同步执行
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一 let和const 1.let (1)一个大括号就是一个块级作用域,let声明的变量只在自己作用域有效; (2...
- 1. promise要解决的问题: 脑筋急转弯:把牛关进冰箱里,要分几步? 很显然,这三个操作不能颠倒顺序,否则任...
- 学习序 1. 环境搭建 2. let 与 const 3. 解构赋值 4. Symbol 5. Map 与 Set...