0

BaconJS からzipの例を作成しようとしています。しかし、うまくいきません。

var obs = Bacon.fromArray([{ x: 1, y: 2 },
                           { x: 3, y: 4 }]);

var x = obs.map('.x');
var y = obs.map('.y');

var result = x.zip(y, function(x, y) {
  return x + y;
});

// This doesn't work
// if `result` is replaced with `x` then it produces 1, 3 correctly
result.onValue(function(value) {
  $("#events").append($("<li>").text(value))
});

例 JSFiddle

4

1 に答える 1

1

問題はBacon.fromArray、他のストリームとは (同期的に) 動作が異なる にあります。これは、サンプル コードで多くの人が遭遇する典型的な問題です。FAQを参照してください。

これを解決する 1 つの方法は.delay(0)、ストリームに追加することです。もう 1 つの方法は、を使用することBacon.sequentiallyです。

動作するようにフィドルを更新しました。

于 2014-10-24T12:55:04.627 に答える