JavaScript实现多个异步请求有序且同步完成

JavaScript实现多个异步请求有序且同步完成

前言

有时候我们需要执行多个异步请求任务,并且需要都执行成功再执行下一步操作,对返回值的结果也是有要求的,那么则可以使用以下方式,构建一个异步任务队列,然后批量处理,最后拿到统一的结果。

代码如下:

// 任务队列
			let taskList = [];
			for (var i = 1; i <= 10; i++) {
				let task = new Promise((resolve, reject) => {
					taskMethod(i, resolve, reject)
				});
				taskList.push(task);
			}

			Promise.all(taskList).then(success => {
				// 多个异步任务执行成功,在此处执行下一步操作
				console.log('finalResult:', success)
			}).catch(error => {
				// 多个异步任务执行失败,在此处执行下一步操作
				console.log("error:", error)
			});

			/**
			 *  需要执行任务的方法,参数可自定义调整
			 * @param {Object} index   第 n 个任务
			 * @param {Object} resolve 成功回调
			 * @param {Object} reject  失败回调
			 */
			function taskMethod(index, resolve, reject) {
				// 模拟异步任务耗时
				setTimeout(() => {
					console.log("第 " + index + " 个任务开始执行")
					if (1 == 1) {
						resolve("success" + index)
					} else {
						reject("error" + index)
					}
				}, i * 1000)
			}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值