回调函数: 是一段可执行的代码,作为参数传递到另外一个函数中,其作用是在需要的时候调用这段(回调函数)代码。
回调函数使用场景:
- 异步编程
- 事件监听、处理
- setTimeout、setInterval定时器方法
- 通用方法,简化逻辑
异步编程常见方法:
- 回调函数
- DOM事件监听
- 发布订阅模式
- ES6中的promise 对象
- ajax请求
注意:异步任务又可分为宏任务(macro-task)和微任务(micro-task)
macro-task:script(整体代码)、setTimeout、setInterval、setImmediate、I/O、事件绑定、ajax、UI rendering
micro-task:process.nextTick,promise、Object.observe、MutationObserver
优先级顺序:process.nextTick() > promise > setTimeout > setImmediate
注意: 回调函数是有同异步区分的
- 同步回调如下:
function funA() {
console.log("a");
}
function funB(fun) {
console.log("b");
fun();
}
funB(funA);
“回调函数(callback)”,就是那些会被主线程挂起来的代码。异步任务必须指定回调函数,当主线程开始执行异步任务时,就是执行对应的回调函数。