使用es3 语法模拟 Promise.all() 的效果
// 模拟异步函数
var asyncFunc = function (aa, time, cb) {
setTimeout(() => {
const data = aa
cb(aa, data)
}, time)
}
// 结果集
var resultArr = []
// 所有异步函数执行后的最终处理函数
var finalFunc = function () {
console.log('结束')
console.log(resultArr)
}
// 计数器
var num = 0
// for循环模拟发送多个请求
for (var i = 0; i < 3; i++) {
var time = Math.random() * 1000
asyncFunc(i, time, function (index, data) {
// 按顺序插入结果集
resultArr[index] = data
num++
// 所有异步函数执行完毕执行
if (num === 3) {
finalFunc()
}
})
}