- 通过for... of...实现异步继发请求:
for... of...zhi只有等上一个异步请求完成之后才能开启下一个异步请求 - 通过map实现异步并发请求:
同时开启多个异步请求,将Promise保存在一个数组中,通过for of 配合await实现继发读取。
应用:对于存在依赖关系的url内容请求等场景,可以使用该方式,并发请求多个url,节省了请求时间。
var promise = function(count) {
var tempPromise = new Promise((resolve, reject) => {
console.log(count);
setTimeout(() => resolve(`${count} : ${new Date().getSeconds()}`), 2000)
})
return tempPromise;
}
var arr = [1,2,3,4,5]
async function logOut() {
for (var i of arr) {
const response = await promise(i);
response.then()
}
}
async function logOut2() {
const textArr = arr.map(async i => {
const response = await promise(i);
// console.log(response)
return response
})
for (var i in textArr) {
console.log(await textArr[i])
}
}
logOut()的输出如下所示:
logOut2()的输入如下所示