JS中的同步回撥函式和非同步回撥函式
阿新 • • 發佈:2021-01-12
技術標籤:JSjavascript前端
1. 同步回撥函式
立即執行, 完全執行完了才繼續往後執行, 不會放入回撥佇列中
例如:
- 陣列遍歷相關的回撥函式
- Promise的excutor函式(在使用
new Promise()
建立一個新物件的時候,傳遞給Promise建構函式的那個函式引數)
//程式碼演示
let arr = [1,2,3];
arr.forEach(function (item) {//遍歷回撥,該同步回撥函式不會放入列隊,一上來就要執行完
console.log(item);
})
console.log('forEach()之後');
輸出結果:
2. 非同步回撥函式
不會立即執行, 會放入回撥佇列中等待將來執行
例如:
- 定時器回撥
- ajax回撥
- Promise的成功或失敗的回撥
//程式碼演示
setTimeout(function () {//該非同步回撥函式,會放在佇列中
console.log('setTimeout()正在執行');
},0);
console.log('setTimeout()之後');
//結果:先輸出“setTimeout()之後”,最後輸出“setTimeout()正在執行”