用async/await实现promise.all的效果

1,009 阅读1分钟

开始

面试的时候被问到了如何使用async/await实现promise.all的效果
      function returnPro(params) {
        return new Promise((resolve, reject) => {
          setTimeout(() => {
            if (params == 1) {
              resolve(params);
            } else {
              reject(params);
            }
          }, 1000);
        });
      }
      let a = returnPro(1);
      let b = returnPro(1);

1. promise.all

      Promise.all([a, b])
        .then((res) => {
          console.log(res);
        })
        .catch((err) => {
          console.log(err);
        });

image.png

2. async/await实现promise.all

      async function promiseAll(parm) {
            let arr = [];
            for (let i = 0; i < parm.length; i++) {
              let aa = await parm[i];
              arr.push(aa);
            }
            return arr;
          }
        promiseAll([a, b])
            .then((res) => {
              console.log(res);
            })
            .catch((err) => {
              console.log(err);
            });

image.png

3. 最后

如果有什么不对的地方欢迎大家指出