回调函数

it2025-05-03  5

回调函数

如果想要获取一个函数中的异步操作结果,必须通过回调函数来获取 例如想获取下面代码的data值:

function fn() { setTimeout(function() { var data = 'hello' },1000) }

如果直接在函数下面使用如下代码:

console.log(data)

由于setTimeout是异步操作,所以还没执行就先执行console.log(),因此结果为undefined。

如果把data定义在函数体外面

var data = 'hi' function fn() { setTimeout(function() { data = 'hello' },1000) } console.log(data)

则也是没有执行setTimeout()就直接执行console.log(),输出结果为hi而非hello

正确操作

回调函数的本质是获取异步操作的结果

function fn (callback) { //相当于 var callback = function (data) { console.log (data) } setTimeOut(function() { var data = 'hello' //这里的data是实参 callback (data) },1000) } //回调函数 fu(function (data) { //这里的data是形参 console.log (data) })
最新回复(0)