對Promise.prototype.finally()的粗淺理解


Promise.prototype.finally()

Promise.prototype.finally() 方法,無論上一個 promise 成敗都會執行,且默認情況下會原樣傳遞上一個 promise 的決議,仔細體會下面的例子:

var p = Promise.resolve('ok')
  .finally(() => { 
    return Promise.reject('這里只有返回被拒絕的 promise 或者 throw 一個錯誤,才會影響當前 finally 返回的新 promise 的決議') })
  .then(value => {
    console.log('成功', value)
  }, (err) => {
    console.log('失敗', err)
  });

總結:
finally 對自身返回的 promise 的決議影響有限,它可以將上一個 resolve 改為 reject,也可以將上一個 reject 改為另一個 reject,但不能把上一個 reject 改為 resolve。


參考:
MDN Promise.prototype.finally()


免責聲明!

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



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