【发布时间】:2014-10-27 14:41:36
【问题描述】:
我有一个事件流:
var eventStream = _([{
id: 1, foo: 'bar'
}, {
id: 2, foo: 'baz'
}]);
对于流中的每个事件,我需要加载一个模型实例(我的 DAL 返回 Promise),然后在模型的每个实例上调用一个方法,将原始事件数据中的一些数据作为参数传递。
加载模型实例并不太难:
eventStream.map(function(data) {
return getModelPromise(data.id);
}).map(_).merge(); // result is a stream of model instances
但是一旦我有了模型,我就无法弄清楚如何调用模型上的方法并将data.foo 传递给它。基本上,对于我需要做的每个实例:
modelInstance.doStuff(data.foo);
我玩过分叉流,在分叉上拉模型,然后以不同的组合使用zip 和invoke,但我没有任何运气。使用 async,我可以很简单地通过适当的闭包用户来处理这个问题。如何使用 highland.js 通过流实现这一点?
【问题讨论】:
标签: javascript node.js asynchronous stream highland.js