// 设计一个简单的任务队列, 要求分别在 1,3,4 秒后打印出 "1", "2", "3";
function generateTask(fn, time){
return new Promise((resolve, reject)=>{
setTimeout(()=>{
resolve("6")
fn()
},time)
})
}
const tasks = [generateTask(()=>console.log(1),1000),
generateTask(()=>console.log(3),3000),
generateTask(()=>console.log(4),4000),
]
// 让三个任务一起并行执行
async function doTask(t){
let res = null
try {
res = await t
}catch (e) {
res = e
}
return res
}
// (async function(){
// for(let t of tasks) {
// console.log("before")
// // console.log(await doTask(t))
// doTask(t)
// console.log("after")
// }
// })()
// 这个加await的话会阻塞进入下一个循环,但是不会影响结果,因为在generateTask的时候已经启动了定时器了,
// 也就是说Promise的解开时间是固定好的了
// 如果需要启动并发,就别加await
console