我有一个函数返回一个Future。
main(){
function().timeout(Duration(milliseconds: 100), onTimeout: () {
print("exit function");
});
}
Future<void>function()async{
await Future.delay(Duration(milliseconds: 500);
print("function was run");
return Future.value(null);
}
字符串
我想在超时后退出函数。在上面的例子中,我期望输出exit function
。
然而,Flutter控制台的输出是:
exit function
function was run
型
有谁知道如何生成我的预期结果?
- 函数可以是任何类型。
谢谢你的帮助
1条答案
按热度按时间jv2fixgn1#
无法取消Future函数。作为替代方案,如果适合您的用例,您可以考虑使用Streams。您可以订阅StreamSubscription,并在需要时调用
cancel()
。下面是一篇文章中提供的sample。