1. 程式人生 > 其它 >JS中的同步回撥函式和非同步回撥函式

JS中的同步回撥函式和非同步回撥函式

技術標籤: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()正在執行”