listen 方法
继承
为该流添加一个订阅。
返回一个 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<List<int>> listen(void onData(List<int> event)?,
{Function? onError, void onDone()?, bool? cancelOnError}) {
return _stream.listen(onData,
onError: onError, onDone: onDone, cancelOnError: cancelOnError);
}