listen 抽象方法

StreamSubscription<T> listen(
  1. void onData(
    1. T event
    )?,
  2. {Function? onError,
  3. void onDone(
      )?,
    1. bool? cancelOnError}
    )

    为此流添加一个订阅。

    返回一个 StreamSubscription,它使用提供的 onDataonErroronDone 处理器来处理此流的事件。可以在订阅中更改这些处理器,但它们最初是提供的方法。

    对此流的每次数据事件,都会调用订阅者的 onData 处理器。如果 onDatanull,则不会发生任何事情。

    对此流的错误事件,使用错误对象和可能的堆栈跟踪调用 onError 处理器。

    onError 回调和器必须是类型 void Function(Object error)void Function(Object error, StackTrace)。函数类型决定了是否带有堆栈跟踪参数调用 onError。如果此流收到了没有堆栈跟踪的错误,堆栈跟踪参数可能是 StackTrace.empty

    否则,只需传递错误对象。如果省略了 onError,则此流上的任何错误都被视为未处理,并将传递到当前 Zone 的错误处理器。默认情况下,未处理的异步错误类似于未捕获的顶级错误处理。

    如果此流关闭并发送完成事件,则调用 onDone 处理器。如果 onDonenull,则不会发生任何事情。

    如果 cancelOnErrortrue,则当第一个错误事件传递时,将自动取消订阅。默认值为 false

    当订阅暂停或已取消时,订阅不会接收事件,事件处理程序函数也不会被调用。

    实现

    StreamSubscription<T> listen(void onData(T event)?,
        {Function? onError, void onDone()?, bool? cancelOnError});