callback函数的编写意义
js单线程和js异步机制
js本身是单线程的,这种设计模式给我们带来了很多的方便之处,我们不需要考虑各个线程之间的通信,js和引擎只能一件一件的去完成和执行相关的操作,在这种模式下,如果其中有一件事情需要花费很多时间,那后面的任务就无法正常执行,所以js在同步机制的缺陷下设计出了异步模式。
在异步执行的模式下,每一个异步的任务都有其自己一个或者多个回调函数,这样当前在执行的异步任务执行完之后,不会马上执行队列中的下一项任务,而是执行它的回调函数,而下一下任务也不会等这个回调函数执行完,因为它也不确定当前的回调什么时候执行完毕,只要它被触发,就会执行。
callback函数的经典举例
异步请求的回调函数
$.ajax({
url:"/test",
type:"get",
dataType:"json",
success:funciton(data){
console.log("success")
},
error:function(data){
console.log("error")
}
})
上述ajax在请求成功之后,依据返回值,会回调 success 或者error中的function
点击事件的回调函数
$("#test_button").click(funciton(){
console.log("click button")
})
上述 按钮 在点击之后 会回调对应的function