回调函数callback

简介:

回调函数实在另一个函数执行完毕后再执行的函数

在JavaScript中,函数是对象。因此,函数可以将函数作为参数,并且可以由其它函数返回。执行此操作的函数称为高阶函数。任何作为参数传递的函数都成为回调函数

function funA() {
    console.log("A");
}

function funB() {
    console.log("B");
}

funA();
funB();

首先执行第一个函数,再执行第二个函数
结果
A
B

如果函数首先包含某种无法立即执行的代码呢?例如,我们必须发送请求然后等待响应的API请求或延迟数秒后再执行

// 将 funA() 延迟 1 秒

function funA() {
    setTimeout(function() {
        console.log("A");
        },1000)}

function funB() {
    console.log("B");
}
显然,funB()的结果比funA()早一步打印出,这并不是我们想要的

回调是一种确保某些代码在其他代码已经完成执行之前不会执行的方法

function hi(name, callback) {
    console.log(`hi~ ${name} !!`);
    callback();
}

hi('daming', function() {console.log("hello");})

> hi~ daming !!
> hello
function timeHi(name, callback) {
    setTimeout(function() {
        console.log(`hi~ ${name} !!`);
        callback();},1000)
}

timeHi('zhangsan', function() {console.log("hello");})

> hi~ zhangsan !!
> hello

也可以这样,将函数定义作为参数传递,callback()可以顺带参数的:

function timeHi(name, callback) {
    setTimeout(function() {
        console.log(`hi~ ${name} !!`);
        callback(name);},1000)
}

function hello(name) {
    console.log(`${name} 嘤嘤嘤~~`);
}

timeHi('zhangsan', hello);  

> hi~ zhangsan !!
> zhangsan 嘤嘤嘤
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值