【发布时间】:2019-03-27 15:43:01
【问题描述】:
我正在探索 Dart 中的 Futures,我对 Future 提供的这两种方法感到困惑,.then() 和 .whenCompleted()。它们之间的主要区别是什么?
假设我想使用 .readAsString() 读取 .txt,我会这样做:
void main(){
File file = new File('text.txt');
Future content = file.readAsString();
content.then((data) {
print(content);
});
}
所以.then() 就像一个回调,一旦 Future 完成就会触发一个函数。
但我看到还有 .whenComplete() 在 Future 完成后也可以触发一个函数。像这样:
void main(){
File file = new File('text.txt');
Future content = file.readAsString();
content.whenComplete(() {
print("Completed");
});
}
我在这里看到的区别是.then() 可以访问返回的数据!
.whenCompleted() 是做什么用的?我们什么时候应该选择一个而不是另一个?
【问题讨论】:
标签: dart