promise學習---promise.then()返回的新 promise 的結果狀態
阿新 • • 發佈:2021-10-12
(1) 簡單表達: 由 then()指定的回撥函式執行的結果決定
(2) 詳細表達:
① 如果丟擲異常, 新 promise 變為 rejected, reason 為丟擲的異常
② 如果返回的是非 promise 的任意值, 新 promise 變為 resolved, value 為返回的值
③ 如果返回的是另一個新 promise, 此 promise 的結果就會成為新 promise 的結果
let p = new Promise((resolve, reject) => { resolve('ok'); }); //執行 then 方法 let result = p.then(value => { // console.log(value); //1. 丟擲錯誤 throw '出了問題'; //2. 返回結果是非 Promise 型別的物件 return 521; //3. 返回結果是 Promise 物件 return new Promise((resolve, reject) => {// resolve('success'); reject('error'); }); }, reason => { console.warn(reason); }); console.log(result);