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,它的行为与其他流不同(同步)。这是许多人在示例代码中遇到的典型问题。请参阅常见问题解答

解决此问题的一种方法是添加.delay(0)到您的流中,另一种方法是使用Bacon.sequentially.

我已经更新了你的小提琴,所以它可以工作。

于 2014-10-24T12:55:04.627 回答