Future 原意是 " 未来、承诺 ",在 dart 中 Future 是一种类型,表示一种 "期待" 类型。
Future 就像一个盒子,处于一种未知状态。
1. 刚刚创建,尚未完成的状态;
2. 正确完成的状态;
3. 出现错误的状态;
then 函数是当异步函数正确执行完毕时自动执行的函数,开发者通过回调函数来完成后续逻辑:
Future<String> Demo1() async {
return Future.delayed(Duration(seconds: 1), () => "demo1");
}
Future<String> Demo2() async {
return Future.delayed(Duration(seconds: 2), () => "demo2");
}
void main(List<String> args) {
Demo2().then((value) => print(value));
Demo1().then((value) => print(value));
}
Future<String> Demo1() async {
return Future.delayed(Duration(seconds: 1), () => "demo1");
}
Future<String> Demo2() async {
return Future.error("运行错误");
}
void main(List<String> args) {
Demo2().then((res) {
print(res);
}).catchError((err) {
print(err);
});
}
为then() 函数设置返回值,然后就可以通过多个 then 来实现异步连贯操作。
Future<String> Demo1() async {
return Future.delayed(Duration(seconds: 1), () => "demo1");
}
void main(List<String> args) {
Demo1().then((value) {
return value * 2;
}).then((value) {
print(value);
});
}