非同步處理 - Promise

  • ES5以前的callback case:
    目的:有3個api-文章列表、文章資訊、作者資訊。現在要抓取最新一篇文章的作者信箱
    流程:文章列表--(給文章id)-->文章資訊--(給作者id)-->作者
    function實作:callback function:
  • ES6後,以promise實現callback function:
    promise是個物件,有三種型態:等待中pending)、完成resolve or fulfilled)跟失敗reject)。在原本function中,把callback函式拿掉,變成回傳一個pormise物件。原本應該是callback要出現的地方,變成了resolve
    promise物件後加上.then()表示此物件執行完的結果,如果在then裡面return另一個promise物件,就可以不斷串接使用 搭配arrow function可簡化串接的寫法:
  • 為何要使用promise:提高處理非同步code的易讀性,避免callback hell

參考資料1參考資料2參考資料3參考資料4