I have two properties that might depend on each other so I introduce a bus:
let esDealOne1 = Bacon.later(0, true);
let esDealOne2 = Bacon.later(1000, true);
let bHanging = new Bacon.Bus();
let esSetCards = bHanging.filter(_ => _.cards);
let pHanging = HangingStateProperty(esSetCards);
let pDrawer = DrawerProperty(bHanging, esDealOne1);
let pStacks = [
StackProperty(0, esDealOne2, pHanging),
];
function HangingStateProperty(esSetCards) {
let setCards = (_, cards) => {
return { ..._, ...cards };
};
return Bacon.update({},
[esSetCards, setCards]);
}
function DrawerProperty(bHanging, esDealOne1) {
let dealOne1 = (_) => {
let card = _.usefulProperty;
bHanging.push({ cards: [card] });
return _; };
return Bacon.update({},
[esDealOne1, dealOne1]);
}
function StackProperty(n, esAllDealOne2, pHanging) {
let esDealOne2 = esAllDealOne2.filter(_ => _.i === n);
let dealOne2 = (_, {i}, hangingState) => {
let cards = hangingState.cards;
_.property = cards;
return _;
};
return Bacon.update({},
[esDealOne2, pHanging, dealOne2]);
}
How can I get rid of this bus?