这个问题通常出现在你尝试多次监听同一个流的情况下。解决方法是在每次订阅时创建新的流实例,而不是多次订阅同一实例。 以下是一个示例代码,使用流控制来解决这个问题:
import 'dart:async';
class MyController {
StreamController _myStreamController = StreamController();
Stream get myStream => _myStreamController.stream;
void addSomeValues() {
_myStreamController.add('Hello');
_myStreamController.add('World');
}
void dispose() {
_myStreamController.close();
}
}
void main() {
var controller = MyController();
controller.myStream.listen((val) => print(val));
controller.addSomeValues();
// Create a new instance of the stream and subscribe to it again
controller = MyController();
controller.myStream.listen((val) => print(val));
controller.addSomeValues();
controller.dispose();
}