首页 > 解决方案 > 回调必须是节点中的函数

问题描述

我是 NodeJS 的新手,我无法让这段代码工作。我想先删除里面的文件,然后再删除文件本身。

请问我做错了什么?

     var fs = require("fs");
     fs.unlink('./stuff/writeMe.txt', () => {
     fs.rmdir('stuff');
     });

标签: javascriptnode.js

解决方案


在 Node 中调用fs.unlink和之类的异步函数会启动一个任务。fs.rmdir你将一个函数作为参数传递给他们——一个回调——当任务完成时被调用。回调有一个参数告诉您操作是否成功完成。

您已经通过仅在完成fs.rmdir时调用来部分地使用fs.unlink它。现在你需要说出fs.unlink完成后要做什么(即使它什么都没有),并开始检查错误。

出现错误时可以执行的操作的一个示例是抛出该错误,该错误将打印出来并退出进程。

fs.unlink('stuff/writeMe.txt', (err) => {
    if (err) throw err;

    fs.rmdir('stuff', (err) => {
        if (err) throw err;
    });
});

推荐阅读