异步禁止! map函数结合Promise同步写法
- 2019 年 11 月 4 日
- 筆記

image.png
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>map函数组延时写法</title> </head> <body> <script> async function doo(){ console.log("程序开始运行"); let pl = [1, 2, 3].map(async (value, index)=>{ await new Promise((resolve, reject)=>{ setTimeout(()=>{ console.log("=距离程序开始运行已经过了=", value*value, "秒"); resolve(); }, value*value*1000) }) }); for (let i = 0; i<pl.length; i++){ await pl[i]; } console.log("程序结束了"); } doo(); </script> </body> </html>

代码更简洁一些?
可以把最后的for循环
for (let i = 0; i<pl.length; i++){ await pl[i]; }
换成
await Promise.all(pl);
效果是一样的~