forEach()里面使用异步函数,那如何等所有的异步函数都执行完再 进行下一步

小小小小小小马 2017-03-12 03:31:51
...全文
3885 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2017-03-12
  • 打赏
  • 举报
回复
异步函数不应该用直接循环,不然项目的执行顺序是不确定的。 应该用递归。如

var arr = ["a","b","c"];
(function loop(index) {
	setTimeout(function(){//用setTimeout模拟异步函数
		console.log(arr[index]);
		if (++index<arr.length) {
			loop(index);
		} else {
			console.log("全部执行完毕");
		}
	}, 500);
})(0);
似梦飞花 2017-03-12
  • 打赏
  • 举报
回复
Promise.all $.when 或者每返回一个记一个数 当数字和数组长度一样时就认为是全部执行了

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧