节点js fs.unlink()如何工作

时间:2016-04-16 02:52:12

标签: node.js

我是节点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

首先执行哪个参数?回调还是第一个参数?为什么第一个参数保留为异常?

1 个答案:

答案 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,否则它会显示错误消息。