import 'dart:async';
import 'dart:io';
void main() {
createStreamFromFuture();
createStreamFromFutures();
createStreamFromIterable();
}
//通过单个Future创建Stream流
createStreamFromFuture() async {
Future<String> future = Future(() {
return '异步任务';
});
Stream<String> stream = Stream<String>.fromFuture(future);
await for (var i in stream) {
print(i);
}
}
//通过多个Future创建Stream流
createStreamFromFutures() async {
Future<String> future1 = Future(() {
return '异步任务1';
});
Future<String> future2 = Future(() {
sleep(Duration(seconds: 5));
return '异步任务2';
});
Future<String> future3 = Future(() {
return '异步任务3';
});
Stream<String> stream =
Stream<String>.fromFutures([future1, future2, future3]);
await for (var i in stream) {
print(i);
}
}
//通过fromIterable进行创建
createStreamFromIterable() async {
Stream<int> stream = Stream<int>.fromIterable([1, 2, 3, 4, 5]);
await for (var i in stream) {
print(i);
}
}
dart笔记16:stream流创建的另外三种方法
dart笔记16:stream流创建的另外三种方法:除了之前的periodic创建计时流之外,还有通过future创建以及通过List创建:
