2014-10-23 5 views
0

Я пытаюсь создать zip example от BaconJS. Но это не сработает.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)) 
}); 

Example JSFiddle.

ответ

1

Проблема с Bacon.fromArray, которая ведет себя по-другому (синхронно), чем другие потоки. Это типичная проблема, с которой сталкиваются многие люди в примере кода. См. FAQ.

Один из способов решить это - добавить .delay(0) к вашему потоку, другой - использовать Bacon.sequentially.

Я обновил ваш fiddle, так что он работает.