add method
Adds t
to this stream.
If this ValueStream is sync, notifies listeners before returning,
unless if t
compares ==
to the value last used to notify the listeners.
If this ValueStream is not sync, notifies listeners in the next microtask.
Further calls to add or addError within a single microtask will
override previous calls.
In the next microtask, the listeners are notified with the last-added
value, unless if it compares ==
to the value last used to notify them.
If there are no listeners, buffers t
and drops any previusly
buffered values/errors.
Implementation
@override
void add(T t) {
_lastAddedValue = ValueOrException.value(t);
if (!_sync && _controller.hasListener) {
if (_controllerAddScheduled) return;
_controllerAddScheduled = true;
scheduleMicrotask(_controllerAddMicrotask);
} else {
_controllerAddMicrotask();
}
}