Open superkerokero opened 4 years ago
AsyncMessageBroker seems to be useful in cases where one may need to collect some data from subscribers.
Currently, you can await all subscribers to finish their jobs, then do something like this:
await AsyncMessageBroker.Default.PublishAsync<TestMessage>(new TestMessage()); // Do something after
AsyncMessageBroker.Default.Subscribe<TestMessage>(_ => { return Observable.TimerFrame(10).AsUnitObservable(); }).AddTo(this);
But what I want to do is something like this:
TestPayload[] payloads = await AsyncMessageBroker.Default.PublishAsync<TestPayload, TestMessage>(new TestMessage()); // Do something with awaited payloads Debug.Log(payloads[0].Value);
AsyncMessageBroker.Default.Subscribe<TestMessage, TestPayload>(_ => { return Observable.TimerFrame(10).Select(_ => new TestPayload(Value=1000)); }).AddTo(this);
I have just submitted a PR #457 to address this issue.
AsyncMessageBroker seems to be useful in cases where one may need to collect some data from subscribers.
Currently, you can await all subscribers to finish their jobs, then do something like this:
But what I want to do is something like this: