NodeJS 在fs.unlink中是否首先执行路径或回调?

tkclm6bt  于 2023-01-20  发布在  Node.js
关注(0)|答案(1)|浏览(112)

我是Node.js的新手,不理解fs.unlink()函数的文档:
异步表单始终将完成回调作为其最后一个参数。传递给完成回调的参数取决于方法,但第一个参数始终保留用于异常。如果操作成功完成,则第一个参数将为null或未定义。

const fs = require('fs');

fs.unlink('/tmp/hello', err => {
    if(err) throw err;
    console.log('successfully deleted /tmp/hello');
});

哪一个参数会先被执行-回调还是路径?为什么第一个参数是为异常保留的?

qlfbtfca

qlfbtfca1#

这是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)

回调函数resultHandler在I/O操作完成后由Node.js API调用,这可能在调用API函数很长时间后发生。回调函数的第一个参数是err,如果没有错误,则为空,否则将显示错误消息。

相关问题