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);
}