Javascript 带有错误事件的管道
在构建复杂的流管道时,将错误从一个阶段传递到下一个阶段通常是有意义的。(在目前的情况下,我正在考虑吞咽管道。)但是Node.js streamJavascript 带有错误事件的管道,javascript,node.js,events,error-handling,stream,Javascript,Node.js,Events,Error Handling,Stream,在构建复杂的流管道时,将错误从一个阶段传递到下一个阶段通常是有意义的。(在目前的情况下,我正在考虑吞咽管道。)但是Node.js streampipe方法显然不能做到这一点 可以手动将一个流的错误事件侦听器绑定到下一个流的错误事件发射器。但这相当乏味 是否有一些简单的方法可以使用错误链接构建管道?还是有什么理由不应该这样做 例如: var through = require("through2"); var s1 = through(function(chunk, enc, cb) {
pipe
方法显然不能做到这一点
可以手动将一个流的错误事件侦听器绑定到下一个流的错误事件发射器。但这相当乏味
是否有一些简单的方法可以使用错误链接构建管道?还是有什么理由不应该这样做
例如:
var through = require("through2");
var s1 = through(function(chunk, enc, cb) {
console.log("In 1: " + chunk.toString());
cb(null, chunk);
});
var s2 = through(function(chunk, enc, cb) {
console.log("In 2: " + chunk.toString());
if (chunk.toString() === "error")
cb(Error("Something broke"), null);
else
cb(null, chunk);
});
var s3 = through(function(chunk, enc, cb) {
console.log("In 3: " + chunk.toString());
cb(null, chunk);
});
s1.pipe(s2).pipe(s3)
.on("data", function(chunk, enc) {
console.log("Out: " + chunk.toString());
})
.on("error", function(err) {
console.log("Final error: " + err);
})
;
////////////////////////////////////////////////////
// The following two lines are the relevant part. //
s1.on("error", s2.emit.bind(s2, "error")); //
s2.on("error", s3.emit.bind(s3, "error")); //
////////////////////////////////////////////////////
s1.write("first");
s1.write("error");
s1.write("last");
是否有一些简单的方法可以使用错误链接构建管道
提供了执行此操作的机制
还是有什么理由不应该这样做
我不知道。在许多情况下,这似乎是你有理由想做的事情
是否有一些简单的方法可以使用错误链接构建管道
提供了执行此操作的机制
还是有什么理由不应该这样做
我不知道。在许多情况下,这似乎是你有理由想做的事情