在dart/flutter中终止函数

baubqpgj  于 2023-08-07  发布在  Flutter
关注(0)|答案(1)|浏览(142)

我有一个函数返回一个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


有谁知道如何生成我的预期结果?

  • 函数可以是任何类型。

谢谢你的帮助

jv2fixgn

jv2fixgn1#

无法取消Future函数。作为替代方案,如果适合您的用例,您可以考虑使用Streams。您可以订阅StreamSubscription,并在需要时调用cancel()。下面是一篇文章中提供的sample

相关问题