实现mergePromise函数,把传进去的数组顺序先后执行,并且把返回的数据先后放到数组data中

实现mergePromise函数,把传进去的数组顺序先后执行,并且把返回的数据先后放到数组data中.

const  asyncFun =  ms = > new Promise((resolve,reject)=>{
		//此处 用 setTimeout 模拟 异步操作
		setTimeout(()=>{
			resolve();
		},ms);
});
//asyncFun 最终 会 返回 一个 promise 对象 
const  fn1 = ()=>asyncFun(6000).then(()=>{
		console.log(1);
		return 1;
});

const fn2 = ()=> asyncFun(2000).then(()=>{
	console.log(2);
	return 2;
});

const fn3 = ()=> asyncFun(1000).then(()=>{
	console.log(3);
	return 3;
});

const mergePromise = asyncArray = >{
	return new Promise(resolve=>{
		let data = [];
		//启用 一个 promise 引用    Promise.resolve(value)方法返回一个以给定值解析后的Promise 对象
		let promise = Promise.resolve();
		asyncArray.forEach(asyncFun =>{
			promise = promise.then(asyncFun).then(res=>{
				data.push(res);
			});
		});
		return promise.then(()=>{
			resolve(data);
		})
	})
}

 mergePromise([fn1,fn2,fn3]).then(data=>{
	console.log('done');
	console.log(data);
})

//最终 打印出     
// 1
//  2
//  3
// done
//  [1,2,3]    

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值