stream<T> static method

Stream<T> stream<T>(
  1. Stream<T> source()
)

Implementation

static Stream<T> stream<T>(Stream<T> Function() source) {
  final context = NativeCallContext._();
  final zone = Zone.current.fork(zoneValues: {_key: context});
  StreamSubscription<T>? subscription;
  late StreamController<T> controller;
  controller = StreamController<T>(
    onListen: () => zone.run(() {
      subscription = source().listen(
        controller.add,
        onError: controller.addError,
        onDone: controller.close,
      );
    }),
    onPause: () => subscription?.pause(),
    onResume: () => subscription?.resume(),
    onCancel: () => subscription?.cancel(),
  );
  return controller.stream;
}