listen 方法
override
为此流添加一个订阅。
返回一个 StreamSubscription,该订阅使用提供的 onData、onError 和 onDone 处理器来处理此流的事件。可以在订阅上更改处理器,但它们最初是提供的函数。
对于此流的每个数据事件,都会调用订阅者的 onData 处理器。如果 onData 为 null,则不执行任何操作。
对于此流的错误,使用错误对象和可能的事务跟踪调用 onError 处理器。
onError 回调必须为类型 void Function(Object error) 或 void Function(Object error, StackTrace)。函数类型决定是否使用带有事务跟踪参数的 onError 被调用。如果此流在没有任何事务跟踪的情况下收到错误,事务跟踪参数可能为 StackTrace.empty。
否则它只使用错误对象来调用。如果省略 onError,则此流上的任何错误都视为未处理,并将传递到当前 Zone 的错误处理器。默认情况下,未处理的异步错误被视为未捕获的顶级错误。
如果此流关闭并发出完成事件,则调用 onDone 处理器。如果 onDone 为 null,则不执行任何操作。
如果 cancelOnError 为 true,则在传递第一个错误事件时自动取消订阅。默认为 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);
}