Tom Larkworthy
03/29/2025, 9:46 PMIvan Reese
Tom Larkworthy
04/01/2025, 6:48 AMIvan Reese
Tom Larkworthy
04/01/2025, 5:27 PMawait Promise.all([task1, task2])
. In Rx this is a zip. Observable went for limited stream combine operators, but even in Rx world, if you zip and then accidentally go out of sync, you get a different type of reactivity bug, so zip is not really the correct answer either, coz there is nothing enforcing the streams are publishing at the same rate.
I look at Rust borrow checker and that it does some kind of resource counting in the type system, so that seems kinda like it might be the right path, but its not "easy", either to develop or for people to use. So I dunno. Its an outstanding problem with reactive systems: joining streams in a non-fragile way. When you visualize it at least the problem sometimes becomes apparent, and visualization also catches the unintended coupling that occurs as well in impure systems. So thats my best workable solution for now.
Parent
/ \
async task1 async task2
\ /
common
jamii
04/02/2025, 5:46 AMTom Larkworthy
04/02/2025, 7:05 AM