一个函数作为另一个函数的参数,当这个函数在某些事情完后开始执行这个作为参数的函数。作为参数传给另一个函数,并在适当时机被"回过头"来调用的函数。
可以这样理解它:不是父函数执行完立刻调用它,而是父函数在某个时机(比如处理完数据、事件触发、网络请求成功等)才调用它。
- 同步调用
python
function greet(name, callback) {
console.log("你好," + name);
callback(); // 此处调用传入的函数
}
function sayBye() {
console.log("再见!");
}
greet("张三", sayBye); // => 你好,张三
// => 再见!
sayBye是回调函数;
它是被greet传进去,在适合时机调用的。
- 异步回调(比如网络请求)
python
axios.get('/api/books')
.then(function(response) {
console.log('请求成功,返回数据:', response);
});
.then(function)里的函数就是一个回调。
只有当axios请求成功后,这个函数才会被自动调用。
不是"主函数执行完就调用",而是"请求成功后才调用"。