<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## Promise 快捷方式 ### Promise.resolve() 和 Promise.reject() 可以使用 Promise.resolve() 和 Promise.reject() 快捷返回,比如 : ``` function p (num) { if (num >= 0) { return Promise.resolve(num) } else { return Promise.reject(new Error('參數不能小于 0')) } } ``` ### Promise.all JavaScript 還提供了 Promise.all,但它不是什么快捷方式。 可以如下總結它的算法: ``` 接受一個 promise 的數組 等待所有這些 promise 完成 返回一個新的 Promise,將所有的 resolve 結果放進一個數組里 只要有一個 promise 失敗(rejected),這個新的 promise 將會被 rejected ``` 示例,函數仍然使用上述 p() 函數 ``` Promise.all([ p(10), p(20) ]).then(console.log) .catch(console.log) ``` 輸出 `[10, 20]` 注意: `Promise.all` 是一點不笨,只要有一個 promise 被 reject 了,它就直接 reject,不會等到其他 promise 完成。 ### Promise.race() `Promise.race`方法同樣是將多個 Promise 實例,包裝成一個新的 Promise 實例。 ``` const p = Promise.race([p1, p2, p3]); ``` 上面代碼中,只要`p1`、`p2`、`p3`之中有一個實例率先改變狀態,`p`的狀態就跟著改變。那個率先改變的 Promise 實例的返回值,就傳遞給`p`的回調函數。 `Promise.race`方法的參數與`Promise.all`方法一樣,如果不是 Promise 實例,就會先調用下面講到的`Promise.resolve`方法,將參數轉為 Promise 實例,再進一步處理。 下面是一個例子,如果指定時間內沒有獲得結果,就將 Promise 的狀態變為`reject`,否則變為`resolve`。 ``` const p = Promise.race([ fetch('/resource-that-may-take-a-while'), new Promise(function (resolve, reject) { setTimeout(() => reject(new Error('request timeout')), 5000) }) ]); p .then(console.log) .catch(console.error); ``` 上面代碼中,如果 5 秒之內`fetch`方法無法返回結果,變量`p`的狀態就會變為`rejected`,從而觸發`catch`方法指定的回調函數。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看