日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

我們將在本教程中了解 Promise.race() 方法。正如race() 方法的名稱所暗示的那樣,作為race() 方法的參數傳遞的promise 會執行競爭。

因此,無論哪個 Promise 首先被解析,都只會由 race() 方法執行,其他 Promise 永遠不會被執行。

Promise.race()

JavaScript 中的 Promise.race 方法允許您等待一組 Promise 中的第一個被履行或拒絕,并處理發生的結果或錯誤。一旦其中一個輸入承諾被履行或拒絕,它就會返回一個被履行或拒絕的承諾,以及該承諾的值或原因。

用戶可以按照下面的語法使用promise.race()方法來執行第一個已結算的promise。

Promise.race(iterable).then((response) => {
   // handle response
});

登錄后復制

在上面的語法中,Promise.race()方法將iterable作為第一個參數,我們可以在“then”塊內處理成功執行的promise的響應。

這里iterable采用可迭代對象,例如一組承諾來執行其中的任何承諾,首先解決。

語法

以下是如何在 JavaScript 中將 Promise.race 方法與 async-await 結合使用的語法:

async function example() {
   try {
      const result = await Promise.race([promise1, promise2, ...]);
   } catch (error) {
      // handle error
   }
}

登錄后復制

這里,promise1promise2等等是你想要等待的promise。 Promise.race 方法返回一個已解決或拒絕的 Promise,其中包含要解決或拒絕的第一個輸入 Promise 的值或原因。

異步函數示例使用 try/catch 語句來處理錯誤情況,其中如果任何輸入承諾被拒絕,則執行 catch 塊。

示例 1

在此示例中,我們創建了多個 Promise,并在 Promise 內設置計時器來解決或拒絕它們。我們已將 Promise 數組作為 race() 方法的參數傳遞。

輸出顯示 race() 方法執行被拒絕的 Promise,因為它沒有計時器。因此,race() 方法執行第一個 Promise,即使被拒絕或解決,該 Promise 也會提前實現。

<html>
<body>
   <h2>Using the Promise.race() </i> Method </h2>
   <div id="output"></div>
   <script>
      let promise_1 = new Promise((res, rej) => {
         setTimeout(() => {
            res("Resolved promise with time of 0 milliseconds");
         }, 1000);
      });
      let promise_2 = new Promise((res, rej) =>
      rej("This promise is rejected!")
      );
      let promise_3 = new Promise((res, rej) => {
         setTimeout(() => {
            res("Resolved promise with time of 2000 milliseconds");
         }, 2000);
      });
      Promise.race([promise_1, promise_2, promise_3]).then(
         (response) => {
            document.getElementById("output").innerHTML +=
            "Promise resolved successfully.";
         },
         (error) => {
            document.getElementById("output").innerHTML += "Promise rejected";
         }
      );
   </script>
</body>
</html>

登錄后復制

示例 2

在此示例中,我們采用了不同的 API 并使用 fetch 方法做出了承諾。我們有一系列名為 requests 的 Promise。

我們使用 race() 方法來解析所有請求,無論哪個 Promise 將首先解析,我們都會在“then”塊中打印 URL。

<html>
<body>
   <h2>Using Promise.race() Method with async-await</h2>
   <div id = "output"> </div>
   <button onclick = "executeRace()"> Fetch data from early promise </button>
   <script>
      async function executeRace() {
         // array of different promises
         const requests = [
            fetch("https://api.publicapis.org/entries"),
            fetch("https://catfact.ninja/fact"),
            fetch("https://api.coindesk.com/v1/bpi/currentprice.json"),
         ];
         // resolving the promises using the race() method
         const res = await Promise.race(requests);
         document.getElementById("output").innerHTML +=
         "The first promise resolve is " + res.url;
      }
   </script>
</body>
</html>

登錄后復制

當用戶需要使用第一個已解決的 Promise 的響應時,即使被拒絕或已解決,也可以使用 race() 方法。如果用戶需要使用第一個成功解析的 Promise 的結果,則應該使用 Promise.any() 方法。

以上就是在 JavaScript 中解釋 Promise.race() 和 async-await ?的詳細內容,更多請關注www.92cms.cn其它相關文章!

分享到:
標簽:async await javascript Promise 解釋
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定