1. Promise.any

        共 1760字,需瀏覽 4分鐘

         ·

        2024-06-10 08:00


        Promise.any() 是 JavaScript 中的一個(gè)靜態(tài)方法,用于處理多個(gè) Promise,并返回第一個(gè)成功解決(fulfilled)的 Promise 的結(jié)果。它在 ES2021(ES12)中引入,是 Promise 類(lèi)的一部分。

        語(yǔ)法

        Promise.any(iterable);

        ?iterable: 一個(gè)可迭代對(duì)象(如數(shù)組),其中包含多個(gè) Promise。

        返回值

        ?返回一個(gè)新的 Promise。

        ?如果至少有一個(gè) Promise 成功解決(fulfilled),則返回該 Promise 的解決值。?如果所有的 Promise 都被拒絕(rejected),則返回一個(gè)拒絕的 Promise,并帶有一個(gè) AggregateError,其中包含所有被拒絕的錯(cuò)誤。


        用法示例

        const promise1 = Promise.reject('Error 1');const promise2 = new Promise((resolve) => setTimeout(resolve, 100, 'Success 2'));const promise3 = new Promise((resolve) => setTimeout(resolve, 200, 'Success 3'));
        Promise.any([promise1, promise2, promise3]) .then((value) => { console.log(value); // "Success 2" }) .catch((error) => { console.log(error); });


        在這個(gè)例子中,promise2 是第一個(gè)成功解決的 Promise,所以 Promise.any() 返回 promise2 的解決值 "Success 2"。

        錯(cuò)誤處理

        如果所有的 Promise 都被拒絕,Promise.any() 將返回一個(gè)包含所有拒絕原因的 AggregateError

        const promise1 = Promise.reject('Error 1');const promise2 = Promise.reject('Error 2');const promise3 = Promise.reject('Error 3');
        Promise.any([promise1, promise2, promise3]) .then((value) => { console.log(value); }) .catch((error) => { console.log(error); // AggregateError: All promises were rejected });


        在這個(gè)例子中,所有的 Promise 都被拒絕,因此 Promise.any() 返回一個(gè) AggregateError,其中包含所有的拒絕原因。

        總結(jié)

        Promise.any() 是處理多個(gè) Promise 并獲取第一個(gè)成功結(jié)果的有用工具,特別是在你只關(guān)心哪個(gè) Promise 最先成功的情況下。它與 Promise.race() 的不同之處在于,Promise.race() 返回第一個(gè)解決或被拒絕的 Promise,而 Promise.any() 只關(guān)心第一個(gè)成功解決的 Promise。


        瀏覽 35
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 日本精品秘 入口免费视频 | 久9视频 分娩偷拍91色 | 国产做受 高潮A | 欧美草逼视频 | 无码中文字幕在线 |