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

问题描述 投票:0回答:1

以下是我可以通过两种不同的方式收听流。顶部没有给出关于取消订阅的IDE警告。底部的确如此。

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

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

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

asynchronous dart stream
1个回答
1
投票

这两者之间没有任何行为差异。你正在遇到the lint的限制。该棉绒有许多误报和否定。

一般来说,如果你不使用从StreamSubscription返回的listen,你应该使用forEach代替。

如果你知道Stream将会在听之前不再关心它,那么就没有必要明确取消。你想要取消的地方是,如果有一个时间段,听众不再关心结果 - 比如因为它是一个不再显示的小部件。

© www.soinside.com 2019 - 2024. All rights reserved.