javascript - 回调必须是节点中的函数
问题描述
我是 NodeJS 的新手,我无法让这段代码工作。我想先删除里面的文件,然后再删除文件本身。
请问我做错了什么?
var fs = require("fs");
fs.unlink('./stuff/writeMe.txt', () => {
fs.rmdir('stuff');
});
解决方案
在 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;
});
});
推荐阅读
- json - Spark - 将平面数据框映射到可配置的嵌套 json 模式
- entity-relationship - 不能将表“帐户”用于实体类型“用户”,因为它正在用于实体类型“地址”
- excel - ScreenUpdating 和 Application.Visible 之间是否存在视觉差异?
- r - 关闭从 R 启动的外部应用程序
- ansible - ansible Vault 加密字符串
- ubuntu - 通过 VPN 隧道从第三方获取数据
- java - 如何修复 Microsoft Access 中的表(使用 SQL)中未显示在我的 TableView (fxml) 上的数据?
- f# - 在 WebSharper 中从客户端链接到端点
- c# - 在case语句中返回不同的对象类型?
- rust - 为什么在方法签名中添加“mut”会导致借用持续时间更长?