relayOutcomesStream property
Stream<Map<String, RelayRequestOutcome> >
get
relayOutcomesStream
relayOutcomes on every change, starting with what it holds right now, and closed once the request is over.
Late subscribers get the current outcomes instead of missing everything the relays answered before they listened.
Implementation
Stream<Map<String, RelayRequestOutcome>> get relayOutcomesStream {
final served = servedBy;
if (served != null) {
return served.relayOutcomesStream;
}
final subject =
_relayOutcomesSubject ??= BehaviorSubject.seeded(_ownRelayOutcomes);
// asked for once the request is over: nothing is left to close a subject
// created this late, and a closed one still replays what it ended on
if (_relayOutcomesDone) {
subject.close();
}
return subject.stream;
}