listen 方法

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

    为此流添加一个订阅。

    返回一个 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<RawSecureSocket> listen(void onData(RawSecureSocket s)?,
        {Function? onError, void onDone()?, bool? cancelOnError}) {
      return _controller.stream.listen(onData,
          onError: onError, onDone: onDone, cancelOnError: cancelOnError);
    }