A function you give to another function, to be run when the other function is finished
就是有一个函数a,给它一个函数b,当a结束,他呼叫函数b,就是回呼函数b的意思
举个例子:
function greet(greeting){
var greeting=greeting;
setTimeout(function(){
console.log(greeting);
},3000);
}
greet('Hello!');
上面的范例呼叫greet函数後过了三秒才出现'Hello!',这使用到闭包与一级函数的概念。
闭包的概念是因为greet函数已经被执行完,但是里面的greeting变数还在记忆体中,而因为有闭包,所以里面的函数可以取用greeting变数
另外一个例子,大家常用的JQuery也使用到回呼函数概念
例如:
$('body').click(function(){
alert('hello');
})
click是个函数,里面装着另一个匿名函数当click的参数,click执行完则里面函数被呼叫。
用 callback 解决的非同步的问题, 如果有很多 callback 串再一起
就会变成 callback hell,会很复杂,大家可以看看下面结果出来的顺序
function greet1(callback) {
setTimeout(() => {
console.log("Done greet1")
callback()
}, 2000)
}
function greet2(callback) {
setTimeout(() => {
console.log("Done greet2")
callback()
}, 1000)
}
function greet3(callback) {
setTimeout(() => {
console.log("Done greet3")
callback()
}, 2000)
}
function main(callback) {
greet1(() => {
greet2(() => {
greet3(() =>{
callback()
})
})
})
}
main(() => {
console.log("All function is done.")
})
//Done greet1
//Done greet2
//Done greet3
//All function is done.
参考资料:
Summer。桑莫。夏天
Callback(回调)
callback, promise, async/await 使用方式教学以及介绍 Part I
重新认识 JavaScript: Day 18 Callback Function 与 IIFE
<<: 卡夫卡的藏书阁【Book23】- Kafka - KafkaJS 监控状态事件
先前有介绍过 dat.GUI,这篇补充一些先前没提过的部分: [PixiJS - Day-16] 使...
今天分享我们 App 里的广告运用的情况 广告格式 目前我们用的广告格式有 banner 横幅广告 ...
CSS中语法有着三大特性 分别为: 层叠性、继承性、优先性 1. 层叠性 若是设置给相同选择器相同的...
昨天完成k8s log的来源设定,但是查找log如果都要到vector查说实在有点麻烦,因此今天就来...
Proxmox VE 平台功能丰富,随着建立的客体机服务越来越多,组织成长後势必需要进行分工管理,...