--- tags: JS 直播班 - 2022 秋季班 --- # 核心篇第七堂:非同步與 Promise > 前端必問:你會串 AJAX 嗎? ![](https://i.imgur.com/TlWRwnk.png) ![](https://i.imgur.com/YsS1doZ.gif) ## 同步語言 與 非同步行為 - 什麼是同步?逐行執行的 JavaScript - 非同步事件是什麼 [https://www.casper.tw/javascript/2017/12/07/javascript-event-queue/](https://www.casper.tw/javascript/2017/12/07/javascript-event-queue/) - ![](https://i.imgur.com/O37UKtV.png) ## 補充觀念,前端與伺服器的關係 - setTimeout 與 Web API - 瀏覽器與資料庫 ## Promise 今日示範 AJAX API:https://randomuser.me/ - 為何要使用 Promise - Promise 的寫法 - 串接 - 錯誤 - 建立自己的 Promise - Promise 實戰方法 - Promise 物件方法 - all ## Async / Await - 使用 async 取代 promise - async function 就是 Promise - async 如何捕捉錯誤 - async function 如何回傳值 - async function 限制 - await 只能將 Promise 函式轉為同步,非 Promise 則無法轉為同步