JS 回调函数的使用

回调函数使用用途

  • 获取异步操作的结果

相关的具体使用如下所示:

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

相关的输出结果为: hi

那么我们应该如何获取到相关setTimeout()函数中所修改的data值呢?

因为setTimeout()是异步的,其会在相关fn()函数执行完毕后才进行执行,此时所得到的data仍然为hi,data的值还未进行改变。

如果我们需要获取到setTimeout()中所进行改变了的data数据,则可以使用回调函数来获取到异步操作的结果,具体使用方式如下所示:

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

最终结果输出为:hello

故通过相关的回调函数获取到了异步操作的结果。

以上回调函数代码解释如下:

  • 调用fn函数,同时像fn函数中传递函数参数
  • 执行fn函数中的同步代码
  • 同步代码执行完成后,执行相关的异步代码,即setTimeout()
  • 在执行setTimeout()函数的过程中调用所传递的函数
  • 执行所传递的函数,即输出data的值,而此时data的值为hello
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值