---
# System prepended metadata

title: 核心篇第七堂：非同步與 Promise
tags: [JS 直播班 - 2022 秋季班]

---

---
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 則無法轉為同步