相关疑难解决方法(0)

为什么节点 fs.rmdir 错误中没有堆栈跟踪

当目录不为空时,会fs.rmdir抛出错误且没有堆栈跟踪:

{ [Error: ENOTEMPTY: directory not empty, rmdir '/var/folders/cv/fhzhp3gn/T/downloads']
  errno: -66,
  code: 'ENOTEMPTY',
  syscall: 'rmdir',
  path:
   '/var/folders/cv/fhzhp3gn/T/downloads' }
Run Code Online (Sandbox Code Playgroud)

为了进行比较,我尝试显式抛出假错误,请参阅fake_delete_directory它显示堆栈跟踪(注意该/alex/projects/play.js:8:67行):

Error: some error
    at Timeout.setTimeout [as _onTimeout] (/alex/projects/play.js:8:67)
    at listOnTimeout (timers.js:324:15)
    at processTimers (timers.js:268:5)
Run Code Online (Sandbox Code Playgroud)

代码:

const fs = require('fs')

function delete_directory(path) {
  return new Promise((resolve, reject) => fs.rmdir(path, (err) => err ? reject(err) : resolve()))
}

function fake_delete_directory(path) {
  return new Promise((resolve, reject) => setTimeout(() => reject(new Error("some error"), 1)))
}

const main = async …
Run Code Online (Sandbox Code Playgroud)

node.js

4
推荐指数
1
解决办法
800
查看次数

标签 统计

node.js ×1