### 了解非同步的概念以前,先理解同步 ```js // 一般來說,代碼是一行一行的執行下去: console.log(1); console.log(2); console.log(3); // 依序會得到: 1 2 3 ``` ### 這不難理解,接著來看看何謂非同步,使用 setTimeout 來說明: - 關於 setTimeout 語法 ```js // 放入兩筆參數,參數一表示要調用的函數,參數二表示延遲的執行毫秒 setTimeout(functionName,延遲秒數) ``` ### setTimeout 執行非同步函數範例: ```jsx console.log(1); function showtwo() { console.log("show2 , 執行中"); console.log(2); } console.log(3); console.log(4); setTimeout(showtwo(), 5000); ``` - 從上述的案例來看, setTimeout 調用了 showtwo , 延遲5秒後執行 也就是說,他並不會馬上執行 showtwo 裡頭的內容。 ### 查詢結果: ```js 1 3 4 "show2 , 執行中" 2 以上將會是 console.log 打印出來的順序。 ``` ### 總結: - 為何需要非同步執行? 1. 為了防止 JavaScript 在執行某段代碼時 耗費的時間過長,進而導致後續的 code 阻塞。 進而達到先讓後續代碼持續進行。 2. 非同步執行,是需要搭配回調函數 - Callback 來執行。
×
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