等待多个请求完成对数据进行合并(Promise.all)

1,683 阅读1分钟

这是我参与8月更文挑战的第5天,活动详情查看: 8月更文挑战”juejin.cn/post/698796…

image.png

一. mothods:

 muchPromise() {
      // 请求 1
      let p1 = new Promise((resolve, reject) => {
        getWindowInfo()
          .then(res => {
            resolve(res);
          })
          .catch(err => {
            reject(err);
          });
      });

      // 请求 2
      let p2 = new Promise((resolve, reject) => {
        getWindowList()
          .then(res => {
            resolve(res);
          })
          .catch(err => {
            reject(err);
          });
      });

      // 发起第三请求
      Promise.all([p1, p2]).then(res => {
        console.log(res); // 返回的数组,就是前两个请求返回的数据
        /* 合并逻辑代码 */
      });
    },

二、 created 调用:

 created() {
    this.muchPromise();
  },

三、合并代码:(双循环)

  /* 合并逻辑代码 */
        this.isIndependence = res[0]
        this.checkboxData = res[1]


        if (this.checkboxData) {
          this.checkboxData.forEach(item => {
            this.saveData.push({
              independent: 1, //独立窗口
              windowId: item.id,
              name: item.name
            });
          });
          if (this.isIndependence) {
            this.saveData.forEach((item, index) => {
              this.isIndependence.forEach(node => {
                if (node.windowId == item.windowId) {
                  this.saveData[index].independent = node.independent;
                }
              });
            });
          }
        }

        console.log("this.saveData", this.saveData);

结果:

image.png