我想进行几次定期 REST API 调用并将所有响应合并到一个流中。StreamGroup 可以做到这一点,但是否可以在运行时将新流合并到现有流?假设我有两个周期性流,我将它们与 StreamGroup 合并为一个流。在创建后(因此之后),如何将新的stream.periodic
(例如getC()
)添加/合并到已经存在的 Stream中?stream
StreamGroup.merge(streamList)
import 'package:async/async.dart' show StreamGroup;
// ...
Stream<dynamic> stream;
var streamList = <Stream>[];
// ...
void addPeriodicCallToA({Duration period}) {
streamList.add(Stream<dynamic>.periodic(period, (x) async {
return await getA();
}));
}
// ...
void addPeriodicCallToB({String symbol, Duration period}) {
streamList.add(Stream<dynamic>.periodic(period, (x) async {
return await getB(symbol: symbol);
}));
}
// ...
addPeriodicCallToA(period: Duration(seconds: 1));
addPeriodicCallToA(period: Duration(symbol: 'yoloandswaglol', seconds: 2));
stream = StreamGroup.merge(streamList);