我是节点js的新手,我不太了解节点js的文档。 在这个fs.unlink函数
const fs = require('fs');
fs.unlink('/tmp/hello', (err) => {
if (err) throw err;
console.log('successfully deleted /tmp/hello');
});
异步表单总是将完成回调作为最后一个 论点。传递给完成回调的参数依赖于 方法,但第一个参数始终保留给 例外。如果操作成功完成,那么第一个 参数将为null或undefined。
来自https://nodejs.org/api/fs.html#fs_fs_readfilesync_filename_options
首先执行哪个参数?回调还是第一个参数?为什么第一个参数保留为异常?
答案 0 :(得分:5)
这是Node.js I / O API函数的常见模式。如果你编写像这样的代码
,可能会更容易理解const fs = require('fs');
var resultHandler = function(err) {
if(err) {
console.log("unlink failed", err);
} else {
console.log("file deleted");
}
}
console.log("about to call unlink");
fs.unlink('/tmp/hello', resultHandler);
console.log("called unlink");
执行此代码时,您会看到它打印出来
about to call unlink
called unlink
file deleted (or unlink failed if operation ecountered an error)
在I / O操作完成后,Node.js API会调用回调函数resultHandler
,这可能会在调用API函数后很长时间内发生。回调函数的第一个参数是err
,如果没有错误则为null,否则它会显示错误消息。