在编程中,尤其是 JavaScript 开发中,callback(回调函数)是一个非常基础且重要的概念。简单来说,callback 就是一个被作为参数传递给另一个函数的函数,并在特定时机被调用。
JavaScript 是单线程语言,但很多操作(如网络请求、文件读取、定时器等)是异步的。为了在这些操作完成后执行某些逻辑,我们使用回调函数来“通知”程序:“我完成了,请继续下一步。”
function greet(name, callback) {
console.log('Hello ' + name);
callback();
}
function sayGoodbye() {
console.log('Goodbye!');
}
greet('Alice', sayGoodbye);
在这个例子中,sayGoodbye 就是一个 callback 函数,它被传入 greet 函数并在适当的时候被调用。
setTimeout(function() {
console.log('这段代码 2 秒后执行');
}, 2000);
这里传给 setTimeout 的匿名函数就是一个典型的回调函数。
为了解决这些问题,现代 JavaScript 引入了 Promise 和 async/await 语法。
Callback 是理解 JavaScript 异步编程的第一步。虽然现在有更优雅的替代方案,但许多 API 和库仍在使用回调,因此掌握它是必不可少的。