回调函数:
- 是我们手动定义的
- 我们不调用
- 自动调用
分为两种:
同步回调
立即执行,完全执行完了才结束,不会放入回调队列,一上来就执行完
例如:数组遍历相关的回调函数/promise的excutor函数
// 同步回调
var arr=[1,3,4];
arr.forEach(ele=>{console.log(ele)})
console.log('之后打印的')
//结果:先打印1,3,4 再打印“之后打印的”
异步回调
不会立即执行,会放入回调队列中,将来执行
例如:定时器/ajax/promise的成功|失败中的回调函数
//异步回调,会放入队列将来执行
setTimeout(()=>{
console.log('里面');
},1000)
console.log('外面')
//先打印了外面,在打印里面