javascript异步编程之回调函数

所有异步编程的方法根本就是回调函数。

回调函数可以把它理解成一件你想要做的事情,你明确知道这件事情该怎么做,怎么一步一步的往下做,但是你并不知道这件事情所依赖的任务什么时候才能完成,所以说最好的办法把你这件事情的步骤写到一个函数当中,交给任务的执行者,这个异步任务的执行者它是知道这个任务是什么时候结束的,那他就可以在结束过后去帮你执行你想要做的事情,这件想要做的事情呢,其实我们就可以理解成回调函数。

以ajax为例,调用ajax操作,目的是为了拿到请求结果过后做一些事情,例如显示到界面上,但是这个请求何时能够完成,我们并不知道,所以我们得把得到结果过后要去执行的任务定义到一个函数当中,然后ajax在内部请求完成过后呢,它会自动执行这个任务

这种由调用者定义,交给执行者去执行的函数就称为回调函数

// 具体用法也很简单,他就是把函数作为参数去传递罢了

function foo (callback) {
    setTimeout(function() {
        callback()
    }, 3000)
}

foo(function() {
    console.log("这就是一个回调函数")
})

缺点:如果我们直接使用传统回调的方式去完成复杂的异步流程,就无法避免大量的回调函数嵌套,这也就会导致回调地狱问题。

猜你喜欢

转载自blog.csdn.net/weixin_45313351/article/details/124873655