1.同期コールバック関数
すぐに実行し、完全に実行された後も実行を継続し、コールバックキューに配置されません。
例えば:
- アレイトラバーサルに関連するコールバック関数
- エキサイター関数のPromise(
new Promise()
コンストラクター関数パラメーターPromiseに渡されたときに新しいオブジェクトを作成するために使用)
//代码演示
let arr = [1,2,3];
arr.forEach(function (item) {
//遍历回调,该同步回调函数不会放入列队,一上来就要执行完
console.log(item);
})
console.log('forEach()之后');
出力結果:
2.非同期コールバック関数
すぐには実行されず、将来の実行のためにコールバックキューに配置されます
例えば:
- タイマーコールバック
- ajaxコールバック
- 成功または失敗のコールバックを約束する
//代码演示
setTimeout(function () {
//该异步回调函数,会放在队列中
console.log('setTimeout()正在执行');
},0);
console.log('setTimeout()之后');
//结果:先输出“setTimeout()之后”,最后输出“setTimeout()正在执行”