js循环中执行异步函数的方法

具体代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function getName(item){
            return new Promise((resolve, reject)=>{
                let sino = parseInt(Math.random() * 5000)
                console.log(sino);
                setTimeout(()=>{
                    resolve(item*2)
                },sino)
            })
        }
        async function getAllHistory() {
            let allHistory = []
            let list = [1,2,3,4,5];
            list.forEach((item)=>{
                allHistory.push((async(item)=>{
                   return await getName(item)
                })(item))
            })
            return await Promise.all(allHistory);
          }
          getAllHistory().then((res)=>{
            console.log(res);
          })
    </script>
</body>
</html>
posted @ 2021-04-06 21:51  小猪冒泡  阅读(2093)  评论(0编辑  收藏  举报