如果我错过了一个类似的问题,我道歉 - 我搜索了网站,找不到任何东西。
我的代码看起来像这样(在宣传了fs.unlink之后):
return unlinkAsync(file)
.catch((err) => {
if (err.code === 'ENOENT') {
// Not a concern - file didn't exist, and that's ok
} else {
// Unexpected - propagate it up
throw err;
}
});
问题:在我的机器上(OSX Sierra,节点5.9.1)err.code存在,并且在没有要删除的文件时正确处理。 但是,在另一台机器上 - 相同的操作系统和版本的Node - err.code 不存在 - 我们看到一个名为'cause'的属性,它有一个'代码'属性,但没有err.code。
我搜索了节点源代码(只编码节点一个月,但我认为我没有错过任何东西),除了e.code的期望之外找不到任何东西。
非常感谢任何建议或指导!
提前致谢! 约翰
答案 0 :(得分:0)
最终,它在另一台开发机器上发现了旧版本的Bluebird(1.2.4)(感谢@mscdex!) - 最新版本(3.4.7)提供了err.code,旧版本没有。
然而,在更深层次上发生这种情况是因为我忽略了更新我们的package.json以包含我期望的Bluebird版本 - 经验教训。
谢谢!