listen 方法

StreamSubscription<List<int>> listen(
  1. void onData(
    1. List<int> 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<List<int>> listen(void onData(List<int> event)?,
        {Function? onError, void onDone()?, bool? cancelOnError}) {
      return _stream.listen(onData,
          onError: onError, onDone: onDone, cancelOnError: cancelOnError);
    }