0
点赞
收藏
分享

微信扫一扫

并发执行异步事件,按顺序输出结果

 并发执行异步事件,按顺序输出结果,总耗时为数组中最大的数:

const getData = async (num) => {
return await new Promise((resolve) => {
setTimeout(() => {
resolve(num)
}, num)
})
}

//并发执行异步事件,按顺序输出结果,总耗时为数组中最大的数
const order = async (nums) => {
const promises = nums.map(async num => {
return await getData(num)
})
for (const data of promises) {
console.log(await data)
}
console.log(new Date())
}

const nums = [3000, 2000, 1000, 5000, 5000]
console.log(new Date())
order(nums)

并发执行异步事件,按顺序输出结果_数组

继发执行异步事件,按顺序输出结果,总耗时为数组中的数字之和:

const getData = async (num) => {
return await new Promise((resolve) => {
setTimeout(() => {
resolve(num)
}, num)
})
}

//继发执行异步事件,按顺序输出结果,总耗时为数组中的数字之和
const order = async (nums) => {
for (const num of nums) {
const res = await getData(num)
console.log(res)
}
console.log(new Date())
}

const nums = [3000, 2000, 1000, 5000, 5000]
console.log(new Date())
order(nums)

并发执行异步事件,按顺序输出结果_数组_02

使用Promise.all也可以:

const getData = async (num) => {
return await new Promise((resolve) => {
setTimeout(() => {
resolve(num)
}, num)
})
}

//并发执行异步事件,按顺序输出结果,总耗时为数组中最大的数
const order = async (nums) => {
const promises = nums.map(async (num) => {
return getData(num)
})
const result = await Promise.all(promises)
result.forEach(item => {
console.log(item)
})
console.log(new Date())
}

const nums = [3000, 2000, 1000, 5000, 5000]
console.log(new Date())
order(nums)

并发执行异步事件,按顺序输出结果_javascript_03

 


举报

相关推荐

0 条评论