Hey all,
I was assuming that Select [Reactive.Observable] was ForEach [Reactive]'s stateless twin. Am I wrong?
I’m attempting to refactor the Updates part of GammaLauncher, which is a massive chain of reactive ForEach. Because they’re stateful, I cannot wrap them in static operations, so I started replacing those ForEach with Select [Reactive.Observable], but it looks like the events don’t flow through the pipe anymore.
Re-replacing those with ForEach [Reactive] makes it work again, but that’s not really viable for me since I’m attempting to modularize this whole thing. I also had vvvveird experiences in the past using stateful nodes in reactive pipelines, which is why I don’t want to wrap those in Process nodes.
You can check the current state of thing in the repository at this commit.
Repro steps:
- Open GammaLauncher
- Press
F9to ignore theReturned interface System.__ComObject does not implement IDWriteFactoryexception (bug report incoming) (you’ll get a ghost window) - Navigate to the
UpdatesTabRuntimepatch - There’s a
Selectright after theToBackgroundnode. When starting the launcher or when clicking the Check For Updates button in the UI, you should see Checking for remote builds… logged in the console: this does not happen. - Replace that
Selectnode with a reactiveForEach, pressF9: you should now see this message in the Console.
Can anyone help? Am I using the Select node wrong? And how could I properly modularize this whole thing? :-)
Thanks!