我需要取消未分配给变量的StreamSubscriptions吗?

时间:2019-04-11 16:39:40

标签: asynchronous dart stream

以下是我可以收听流的两种不同方式。最上面的一个没有关于取消订阅的IDE警告。最底层的做到了。

// No IDE warning about cancelling subscription
_loginBloc.state.listen((state) {});

// "Cancel instances of dart.async.StreamSubscription"
StreamSubscription s = _loginBloc.state.listen((state) {});

如果我使用第一种方法,是否需要以某种方式取消订阅,否则它会自行处理吗?

1 个答案:

答案 0 :(得分:1)

这两者之间没有行为差异。您的登录限制为the lint。皮棉有很多错误的肯定和否定。

通常,如果您使用从StreamSubscription返回的listen,则应该使用forEach

如果您知道Stream将在所有监听不再关心之前结束,则无需显式取消。您想确定要取消的地方是,在某个时间点上,侦听器不再关心结果了-例如,因为它是不再显示的小部件。