哪个是通常传递给 Node.js 回调处理程序的第一个参数?
Node.js 中的回调处理函数是一种在特定操作完成后处理某事的方法。这是处理异步代码的方法之一,它需要很长时间才能产生结果,因此我们可以调用回调处理程序,如果有错误,以及异步操作的结果。
回调处理函数遵循错误优先约定,即:
- 回调处理程序的第一个参数应该是错误,第二个参数可以是操作的结果。
- 如果有错误调用回调函数,我们可以像callback(err)一样调用它,否则我们可以像callback(null, result)一样调用它。
句法:
const func = (arg1, agr2, ..., argN, callback) => {
// code logic
}
func(a, b, ..., n, (err, result) => {
// code logic
})
项目设置
第 1 步:如果您还没有安装 Node.js。
第 2 步:为您的项目创建一个文件夹,然后将cd (更改目录)放入其中。在该文件夹中创建一个名为 app.js 的新文件。现在,使用以下命令使用默认配置初始化一个新的 Node.js 项目。
npm init -y
项目结构:按照这些步骤操作后,您的项目结构将如下所示。
示例:在下面提到的代码示例中,我们创建了一个执行除法运算的函数。为了模拟异步操作,我们使用了 setTimeout() 方法,该方法在一秒后调用回调处理程序。当除数为零时,回调处理程序以错误实例作为唯一参数调用,否则以 null 作为第一个参数和除法的结果作为第二个参数调用回调。
app.js
const divide = (a, b, callback) => {
setTimeout(() => {
if (b === 0) {
callback(new Error('Division by zero error'));
} else {
callback(null, a / b);
}
}, 1000);
};
// Our callback handler expects error
// as first argument and the result
// of division as second argument.
divide(5, 2, (err, result) => {
// We check if the error exists then we
// print the error message and return
if (err) {
return console.log(err.message);
}
// We print the result if there is no error
console.log(`The result of division is ${result}`);
});
// In this cases our callback handler
// will be called with an error Instance
// as the divisor is zero
divide(5, 0, (err, result) => {
if (err) {
return console.log(err.message);
}
console.log(`The result of division is ${result}`);
});
运行应用程序的步骤:您可以在命令行上使用以下命令执行 app.js 文件。
node app.js
输出: