我正在探索DART中的Futures,我对Future提供的这两种方法(.then()
和.whenCompleted()
)感到困惑.它们之间的主要区别是什么?
假设我想读一本书.txt使用.readAsString()
,我会这样做:
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()
可以访问返回的数据!