Future
- 通过 dart 的 event loop 实现
- 延时任务,通过 Timer 来实现
- Future.delayed(Duration(second:3),()=>print(“delayed task”));
- 创建一个返回指定 value 的 Future
- Future.value(“abc”).then((res)=>print(res));
- 执行顺序
- Future() - 默认 Timer
- Future.sync() - 同步早主线执行
- Future.microtask() - 转换为微任务
- Future.value(val) - 根据值选择,同时可以控制顺序
Future.wait 执行多个,都完成才返回
- Future.wait([FutureA(),FutureB()]).then((res){ print(res);})
Future.any 执行多个,返回一个最快的
timeout
- Future(xxx).timeout(Duration(seconds:3)).then((res){ print(“超时的then”)})
1
2
3
4
5
6
7
8
9
10
11
12
13
14Future getXXX(){
return Future("xxx");
}
main(){
// then 获取结果
getXXX().then((res){
print(res);
}).catchError((e){ // 捕获异常
print(e);
}).whenComplete({ // Future 完成回调
print("complete");
})
}stream