一、什么是回调函数
回调函数(Callback Function)是指将一个函数的定义作为参数传递给另一个函数,并在特定条件(比如用户鼠标点击、事件触发等)满足时被调用的函数。
回调函数在被作为参数传递以后,并不会立即执行,它需要等待特定的条件才能被触发并执行,这种模式可以让程序在运行期间单独去执行已经被开发者设定好了的特定任务的代码块。
在Node.Js编程中,回调函数在处理异步任务(比如读取文件、发起新的请求、在某些事件后执行代码)方面起着至关重要的作用。
回调函数为Node.Js编程提供了一个闭包的实现,它能访问到函数外面定义的其他外部变量。
回调函数的目的是实现延迟执行或者等待当前任务完成后再执行下一个任务,因此,回调函数是实现异步编程的重要核心机制之一。
Node.Js回调函数的编码范式:
function func(x, callback_func) {
callback_func(x)
}
二、回调函数的特点
支持异步执行:处理API调用、计时器和事件等异步任务的同时,不会阻塞当前任务的执行。
代码可重用性高:通过为不同的场景配置不同的回调函数来编写模块化的可复用的代码。
事件驱动编程:执行哪些回调函数都是由发生了哪些特定事件来决定的,常见的事件有鼠标点击、按键输入等。
支持错误处理:将错误信息传递给回调函数,以便在异步任务执行期间发生错误时可以更好地进行处理。
支持非阻塞运行:可以在异步执行复杂任务的同时,让主线程保持空闲。
三、回调函数的基础语法
1.JavaScript/Node.Js中间隔执行回调函数的语法
JavaScript中有两种方法可以按特定时间间隔来执行回调函数的代码,分别是
-
setInterval()
-
setTimeout()
(1).setInterval的用法:
const intervalID = setInterval(callback, delay);
const intervalID = setInterval(callback, delay, arg1, arg2, ...);
参数说明:
callback:需要定时执行的回调函数。
delay:间隔时间,以毫秒为单位,默认值为0 ms。
arg1, arg2:需要传递给回调函数的参数。
返回值intervalID:定时器ID,可用于执行clearInterval来停止。
代码实战:
// 每秒输出一次
const interval_1 = setInterval(() => {
console.log("Interval_1 triggered");
}, 1000);
// 传递参数
function logMessage(message) {
console.log(message);
}
const interval_2 = setInterval(logMessage, 2000, "Interval_2 triggered");
// 清除定时器
setTimeout(() => {
clearInterval(interval_1);
console.log("Interval_1 stopped");
}