xxxxxxxxxx
void main() {
Stream<String> stream1 = new Stream.fromFuture(getData(2));
Stream<String> stream2 = new Stream.fromFuture(getData(4));
Stream<String> stream3 = new Stream.fromFuture(getData(6));
final result = StreamGroup.merge([
stream1,
stream2,
stream3
]);
result.listen((data) {
print("DataReceived: " + data);
});
}
Future<String> getData(int duration) async {
await Future.delayed(Duration(seconds: duration)); //Mock delay
return "This a test data";
}
xxxxxxxxxx
// Using rxdart package (https://pub.dev/documentation/rxdart/latest/rx/CombineLatestStream-class.html)
StreamBuilder(
stream: CombineLatestStream.list([
stream0,
stream1,
]),
builder: (context, snapshot) {
final data0 = snapshot.data[0];
final data1 = snapshot.data[1];
})