JS Promise實例 then()方法


JS Promise實例 then()方法

內容已更新,可百度搜索: EC前端

描述:

then()方法用於指定當前實例狀態發生改變時的回調函數。它返回一個新的Promise實例。

語法:

Promise.prototype.then(onFulfilled, onRejected);

參數:

參數 描述
onFulfilled 當前實例變成fulfilled狀態時,該參數作為回調函數被調用。
onRejected 當前實例變成reject狀態時,該參數作為回調函數被調用。

返回值:

一個新的Promise實例。

注意:

onFulfilled將接收一個參數,參數值由當前Promise實例內部的resolve()方法傳值決定;onRejected將接收一個參數,參數值由當前Promise實例內部的reject()方法傳值決定。

例1:

const p = function(){ let num = Math.random(); return new Promise((resolve, reject) => { setTimeout(() => { num > 0.5 ? resolve(num) : reject(num); }, 1000); }) }; p().then(val => { console.info(`Status switches to fulfilled, and the value is ${val}`); }, val => { console.info(`Status switches to reject, and the value is ${val}`); })

上面的例子中。若隨機數大於0.5,Promise實例狀態將轉變成fulfilled,則then方法將調用第一個傳入的回調函數;Promise實例狀態將轉變成reject,則then方法將調用第二個傳入的回調函數;

例2:

const p = function(){ return new Promise((resolve, reject) => { setTimeout(() => { reject('Refused the request!'); },0); }) }; const p2 = function(){ return new Promise((resolve, reject) => { setTimeout(() => { resolve(p()) },0); }) }; p2().then(val => { console.info('Status switches to fulfilled'); console.info(val); }, val => { console.info('Status switches to reject'); console.info(val); }); // 輸出 "Status switches to reject" // 輸出 "Refused the request!"

上面的例子中:當Promise實例內部的fulfilled(或reject)傳入的是Promise實例時,其狀態以及then()方法的傳值將由傳入的Promise實例的狀態決定。

轉載至 Promise相關方法 - then()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM