在了解 async 、 await 之前你必須先了解原生 ES6 的 Promise,不了解的朋友可以先去了解一下。
雖然兩個常常一起用,但他是兩個完全可以拆開的應用。
所以接下來我會將他們兩個分開來講,最後在合併一起應用
async,可以用來標註 function 讓 function 被一層 promise 包住
基本上a和b的效果是一樣的,都是返回一個 promise
他必須在async內使用,功效是解開一層 Promise
由於async可以產生 Promise ,而 await 可以解開一層 Promise,所以我們可以將兩者混再一起用
由於async 會等待 await 執行完才繼續執行,所以千萬要考慮效能問題
所以如果兩個 proimse 毫不相關,事實上可以同時去執行 promise 之後再一起 await
舉個mysql promise的實際例子,很多朋友會這樣寫
基本上這樣的操作會事先去資料庫查完 customer , 再去查 employee
但事實上兩個 query 完全不關聯,是可以同時執行的所
所以比較好的做法是
基本上我認為 async 、 await 只是 Promise 的語法糖,
並不是什麼太複雜的東西,如果還是會混淆建議先把 Proimse 搞懂