博客 / 詳情

返回

promise 的三個方法

promise.race\promise.all\promise.allSettled
需要所有操作都成功才能繼續時,用 Promise.all。
只關心最快出結果的那個操作(比如設置超時),用 Promise.race。
需要知道每個操作的最終狀態(無論成功失敗),比如批量處理任務後生成報告,用 Promise.allSettled。

let params1 = {
        dataType: 19, //高頻
        deviceId: this.current.vin,
      };
      let params2 = {
        dataType: 20, //低頻
        deviceId: this.current.vin,
      };
      let params3 = {
        dataType: 120, //週期數據
        deviceId: this.current.vin,
      };
      let params4 = {
        dataType: 122, //事件數據
        deviceId: this.current.vin,
      };
      let p1 = this.findAllUploadTradReq(params1, "highFreData");
      let p2 = this.findAllUploadTradReq(params2, "lowFreData");
      let p3 = this.findAllUploadTradReq(params3, "cycleData");
      let p4 = this.findAllUploadTradReq(params4, "eventData");
      Promise.all([p1, p2, p3, p4])
        .then((res) => {
          let [highFreData, lowFreData, cycleData, eventData] = res;
          // console.log(highFreData,lowFreData,cycleData,eventData);
          if (highFreData || lowFreData || cycleData || eventData) {
            this.tableList[0].lowFreData = "已上傳"; // 燃油車檢測成功
            if (
              this.current.bleVersion == "2.0" &&
              this.current.bleThreeValueStatus === "0"
            ) {
              this.checkingText = "藍牙檢測中...";
              // this.disconnect();
              this.connect();
              return;
            }
            this.unqualified(2);
            return;
          } else {
            this.tableList[0].highFreData = "未上傳";
            this.tableList[0].lowFreData = "未上傳";
            this.tableList[0].cycleData = "未上傳";
            this.tableList[0].eventData = "未上傳";
            let temp = JSON.parse(JSON.stringify(this.tableList[0]));
            this.$set(this.tableList, 0, temp);
            this.unqualified(1);
            this.prolineErrMsg = "燃油車數據檢測未通過!";
          }
        })
        .catch((err) => {
          this.unqualified(1);
          console.log(err);
        });
    },
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.