cancel_subscriptions
取消 dart:async StreamSubscription 的例項。
詳細資訊
#應該 在 dart:async StreamSubscription 的例項上呼叫 cancel。
取消 StreamSubscription 的例項可以防止記憶體洩漏和意外行為。
不好
dart
class A {
StreamSubscription _subscriptionA; // LINT
void init(Stream stream) {
_subscriptionA = stream.listen((_) {});
}
}不好
dart
void someFunction() {
StreamSubscription _subscriptionF; // LINT
}好
dart
class B {
StreamSubscription _subscriptionB; // OK
void init(Stream stream) {
_subscriptionB = stream.listen((_) {});
}
void dispose(filename) {
_subscriptionB.cancel();
}
}好
dart
void someFunctionOK() {
StreamSubscription _subscriptionB; // OK
_subscriptionB.cancel();
}已知限制
此規則不能跟蹤 StreamSubscription 例項化和取消的所有模式。有關更多資訊,請參閱 linter#317。
啟用
#要啟用 cancel_subscriptions 規則,請在您的 analysis_options.yaml 檔案中的 linter > rules 下新增 cancel_subscriptions
analysis_options.yaml
yaml
linter:
rules:
- cancel_subscriptions如果您改為使用 YAML map 語法配置 linter 規則,請在 linter > rules 下新增 cancel_subscriptions: true
analysis_options.yaml
yaml
linter:
rules:
cancel_subscriptions: true