everAll function
Worker
everAll(
- List<
RxInterface> listeners, - WorkerCallback callback, {
- dynamic condition = true,
- Function? onError,
- void onDone()?,
- bool? cancelOnError,
Similar to ever, but takes a list of listeners
, the condition
for the callback
is common to all listeners
,
and the callback
is executed to each one of them. The Worker is
common to all, so worker.dispose()
will cancel all streams.
Implementation
Worker everAll(
List<RxInterface> listeners,
WorkerCallback callback, {
dynamic condition = true,
Function? onError,
void Function()? onDone,
bool? cancelOnError,
}) {
final evers = <StreamSubscription>[];
for (var i in listeners) {
final sub = i.listen(
(event) {
if (_conditional(condition)) callback(event);
},
onError: onError,
onDone: onDone,
cancelOnError: cancelOnError,
);
evers.add(sub);
}
Future<void> cancel() {
for (var i in evers) {
i.cancel();
}
return Future.value(() {});
}
return Worker(cancel, '[everAll]');
}