Combining and zipping
Bacon provides certain methods to combine and zip properties and EventStreams. There is a significant difference between combining and zipping.
When we combine properties, we always get a property, which will have an array of all source properties as its value. If we try to combine EventStreams, then they are first converted to properties before combining takes place. When there is a push in any one of the source properties, a new value is pushed into the resultant property. Combining starts after each of the source properties has a value pushed.
Here is an example to demonstrate combining. Place this code in the index.js
file.
var x1 = new Bacon.Bus(); var x2 = new Bacon.Bus(); var x3 = new Bacon.Bus(); Bacon.combineAsArray(x1, x2, x3).onValue(function(value){ console.log(value); }) x1.push(0); x1.push(1); x2.push(2); x3.push(3); x3.push(4); x1.push(5);
Here is the output of the code:
[1, 2, 3] [1, 2, 4] [5, 2, 4]
Zipping is different from combining. Zipping means that...