当目录不为空时,会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 ×1