【发布时间】:2015-11-28 14:07:20
【问题描述】:
没有错误处理的简单示例:
var fs = require('fs');
function read(filename, cb) {
return cb(fs.readFileSync(filename));
}
就事件循环而言,这在性能方面是否相同,如:
fs.readFile(filename, cb);
我问的原因是加密库中的一些异步函数仍然会抛出错误,而不是将它们传递给回调。我只想制作一个自定义异步函数,以我想要的方式进行错误处理,但我担心使用本机方法的同步版本,因为它们在节点社区中因性能不佳而声名狼藉。那么,按照我建议的方式来做一个包装函数是否安全?
【问题讨论】:
-
为什么你认为这样更好?
-
...它仍然是同步的,只是多了一个函数调用。
-
@SLaks 我希望做一些自定义错误处理,而不是依赖本机库的方式。但是,它看起来不像我所希望的那样,所以我仍然需要依赖本机异步方法。
-
@SebastianSandqvist:您可以包装原生 async 库并添加自己的错误处理。
-
@SebastianSandqvist:不;您可以简单地传递一个回调并检查错误参数。如果你包装了一个异步方法,你可以传递一个检查错误的回调,然后调用你自己的回调。
标签: javascript node.js asynchronous fs