异步禁止! 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);

效果是一样的~