実装する簡単な方法はありcombine3
ますか?
var Bacon = require('baconjs')
function emit(delay)
{
var s = new Bacon.Bus()
setTimeout(function ()
{
console.log("emit", delay)
s.push(delay)
}, delay)
return s.toProperty()
}
var foo = emit(500)
var bar = emit(1000)
var baz = emit(1500)
function consume(foo, bar, baz)
{
console.log("consumed", foo, bar, baz)
}
function combine3(consume, foo, bar, quux)
{
Bacon.combineWith(function (foo, bar, quux)
{
return { foo : foo, bar : bar, quux : quux }
}, foo, bar, quux)
.onValue(function (x)
{
consume(x.foo, x.bar, x.quux)
})
}
combine3(consume, foo, bar, baz)
ダミーのコンシューマーが存在combineWith
しない限り、単独では機能しないことに注意してください。onValue()
Bacon.combineWith(consume, foo, bar, baz).onValue(function () {})
回避策はまだハックのように見えます。次の 3 つのバージョンは を呼び出しませんconsume()
:
Bacon.when([foo, bar, baz], consume)
Bacon.update(911, [foo, bar, baz], consume)
Bacon.zipWith(foo, bar, baz, consume)
当面のタスクは、3 つのパラメーターに基づいて HTML テーブルをフィルター処理することです。soconsume
は、現在選択されているフィルタリング条件に基づいてテーブルを描画し、新しい を生成しませんObservables
。
また、もっと簡単に書く方法はありますemit()
か?