2
我有一個事件流:使用highland.js與原始流數據引用執行一系列任務異步
var eventStream = _([{
id: 1, foo: 'bar'
}, {
id: 2, foo: 'baz'
}]);
因爲我需要裝載模型的實例流中的每個事件(我DAL返回承諾),然後在模型的每個實例上調用一個方法,將原始事件數據中的一些數據作爲參數傳遞。
模型加載情況並不太難:
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
,但我沒有任何運氣。有了異步,我可以通過適當的關閉用戶簡單地處理這個問題。我怎樣才能用highland.js來實現這一點呢?
所以@caolan如果你有3個流和#3取決於#1和#2的輸出,那麼「最佳做法」是將數據注入流? (現在我想到了,這也是Play框架中的請求的工作原理。) – 2015-03-26 04:47:18