回调函数(Callback Function)是一种在JavaScript(以及其他许多编程语言中)广泛使用的编程模式,它是指作为参数传递给另一个函数的函数,这个函数会在预定的某个时间点或者满足特定条件时被调用。回调函数主要用于异步编程,尤其是在处理事件驱动编程、异步I/O操作(如文件读取、网络请求等)时非常常见,允许程序员在操作完成时执行某些后续任务。
回调函数的工作原理是:当你调用一个函数,并将另一个函数作为参数传入时,后者会被当作回调函数存储起来。当第一个函数完成了它的主要任务后,它会调用这个回调函数来通知你任务已经完成或者传递处理结果。
示例(使用Promise的简单异步回调):
// 定义一个模拟异步操作的函数,该函数接受一个回调函数作为参数
function asyncOperation(callback) {
setTimeout(function() {
const result = 'Async operation finished!';
// 异步操作完成后,调用回调函数,并把结果传给它
callback(result);
}, 1000); // 延迟1秒模拟异步操作
}
// 定义一个要作为回调函数使用的处理函数
function handleResult(result) {
console.log('The result of the async operation is:', result);
}
// 调用异步操作,并传入回调函数
asyncOperation(handleResult);
// 控制台将在1秒后输出:The result of the async operation is: Async operation finished!
在这个例子中,handleResult
函数就是一个回调函数,它被传递给了asyncOperation
函数。当asyncOperation
函数内部的异步操作(在这里用setTimeout模拟)完成后,它会调用handleResult
回调函数,并将结果字符串作为参数传递过去。