listen 方法

StreamSubscription<List<int>> listen(
  1. void onData(
    1. List<int> event
    )?, {
  2. Function? onError,
  3. void onDone()?,
  4. 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);
}