Dart/WebStorm“取消Dart.async.StreamSubscription的实例”
我正在使用WinStorm 2018.2.5注册版,带有Dart插件 编辑简单代码时,编辑器会向我显示一条消息: 取消dart.async.StreamSubscription的实例 我不明白这个消息的意思。我看不出代码有什么问题。如果我运行代码检查,结果是:没有发现可疑代码 有什么想法吗 注:Dart/WebStorm“取消Dart.async.StreamSubscription的实例”,dart,webstorm,Dart,Webstorm,我正在使用WinStorm 2018.2.5注册版,带有Dart插件 编辑简单代码时,编辑器会向我显示一条消息: 取消dart.async.StreamSubscription的实例 我不明白这个消息的意思。我看不出代码有什么问题。如果我运行代码检查,结果是:没有发现可疑代码 有什么想法吗 注: const int eventsCount = 5; const int waitBetweenTwoEvents = 1; typedef Streamer = Stream<int>
const int eventsCount = 5;
const int waitBetweenTwoEvents = 1;
typedef Streamer = Stream<int> Function();
...
Streamer streamCreator = () async* {
for(int i=0; i<eventsCount; i++) {
yield i;
sleep(Duration(seconds: waitBetweenTwoEvents));
}
};
当您在analysis_options.yaml中启用了linter规则时,将显示此信息 或者 添加订阅。取消该类中的某个位置。 取下过梁尺 添加注释//忽略:取消\在显示警告的行之前或末尾添加注释 为\u文件添加注释//忽略\u:取消文件中某处的\u订阅
当您在analysis_options.yaml中启用了linter规则时,将显示此信息 或者 添加订阅。取消该类中的某个位置。 取下过梁尺 添加注释//忽略:取消\在显示警告的行之前或末尾添加注释 为\u文件添加注释//忽略\u:取消文件中某处的\u订阅
正如其他人指出的,您有一个lint要求您取消订阅 在这种情况下,我根本不会创建订阅。当您希望通过提前暂停或取消流或处理错误来控制流时,流订阅非常有用。
在这里,您只需要对每个数据事件执行一些操作。这就是这个方法的作用。它甚至在流完成或出错时返回一个已完成的未来,因此您不需要进行订阅。作为未来。正如其他人指出的,您有一个lint要求您取消订阅 在这种情况下,我根本不会创建订阅。当您希望通过提前暂停或取消流或处理错误来控制流时,流订阅非常有用。
在这里,您只需要对每个数据事件执行一些操作。这就是这个方法的作用。它甚至会在流完成或出错时返回一个已完成的未来,因此您无需订阅。asFuture.非常感谢。我不确定,但我认为应该取消流订阅,以便让解释器进行一些清理:流可能需要关闭事件源,并在取消订阅后进行清理。返回在流完成清理后完成的未来。这就是为什么存在linter规则,但linter规则不理解您的程序。例如,您可能会将对订阅的引用传递到其他地方以在那里取消,而linter规则将无法遵循该逻辑。您可能还希望在流本身关闭之前使用所有事件,并且不打算取消订阅。非常感谢。我不确定,但我认为应该取消流订阅,以便让解释器进行一些清理:流可能需要关闭事件源,并在取消订阅后进行清理。返回在流完成清理后完成的未来。这就是为什么存在linter规则,但linter规则不理解您的程序。例如,您可能会将对订阅的引用传递到其他地方以在那里取消,而linter规则将无法遵循该逻辑。您可能还希望在流本身关闭之前使用所有事件,并且不打算取消订阅。是的,我同意。然而,我正在学习Dart,我尝试了很多东西来测试我的理解力。这个代码只是一个实验。是的,我同意。然而,我正在学习Dart,我尝试了很多东西来测试我的理解力。这段代码只是一个实验。
linter:
rules:
- cancel_subscriptions