#### 關於 Callback: - 從字面上來看「call」、「back」。 - 我們稍後在呼叫。也就是晚點再執行的意思。 #### 正確的說法是 - 回調函數 or 異步函數。 - 在 JavaScript 來說,會分成:「同步執行」 & 「異步執行」。 1. 同步執行,會比較好理解它: - 就是代碼要等待第一個任務 end , 才會繼續向下執行下個任務。 ```jsx console.log('1') console.log('2') // 1 // 2 ``` 2. 非同步執行,也就是說,代碼的撰寫順序,不會直接去決定你的執行順序與結果: - 概念上我們可以這樣去理解: ``` 下載圖片() 顯示圖片() -> 這邊因為要顯示圖片之前,須先下載圖片 log1... // -> 下列的代碼決定不做等待,先執行。 log2... ``` - 在非同步執行之下,顯示圖片這個預期的行為會被放入到 Callback Queue 等待。 #### 關於 Callback Queue - Callback Queue(回調佇列)是 JavaScript 中事件處理的一個概念,通常與非同步操作和事件處理相關。 ```js // Callback exp: function showAlert() { alert("hello world!"); } showAlert(); // 這邊是直接調用 setTimeout(showAlert, 3000); // 這邊是將函數做為參數調用 ``` #### 為了不讓某些執行上較久的代碼,導致後續程式碼的阻塞,我們應該執行非同步。 - 從下列代碼來看,由上至下: 2 -> 1 -> 3 ```js function show2() { console.log(2); } console.log(1); setTimeout(show2, 3000); console.log(3); // 但因為非同步操作的關係,實際上: 1 -> 3 -> 2 ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up