我正在尝试使用高地流来传回两个对象:另一个数据流和一个元数据对象。我创建了流:
const outputStream = ...;
const hstream = _.([outputStream]);
client.connect( .. function() {
// fill data stream & also compute metadata, then
hstream.append(meta);
hstream.append(_.nil);
});
后来我用这个来消费:
hstream.apply(function(dataStream, meta) {
...
});
问题是在hstream
结束之前通过apply act调用的函数已经结束,并且没有看到" meta"宾语。我怎样才能重新配置这个,以便在hstream中同时包含两个对象之前不会调用apply?
答案 0 :(得分:0)
以下作品:
const outputStream = ...;
const hstream = _.();
client.connect( .. function() {
// fill data stream & also compute metadata, then:
...
hstream.write(outputStream);
hstream.write(meta);
hstream.end();
});
总的来说,我发现高地流非常强大和灵活,但抽象不是很清楚。在目前的情况下,没有任何明确的 在界面中清楚地表明我写的第一个版本认为自己“已完成”,即使你可以同步调用append。也许更多的doc和/或显式选项......例如在当前案例中:
const hstream = _.([outputStream], {lazy: true})
(或类似的东西......)