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