首页 > 解决方案 > 我如何取消 Future.delayed 函数调用

问题描述

我怎样才能取消 Future.delayed

我正在将 Future.delayed 用于某些任务,但是如果我想取消这个延迟的任务,那么他们的任何方法或任何其他要使用的东西也是如此。

Future.delayed(Duration(seconds: 10),(){
  setState(() {
    //some method calling
  });
});

标签: dartflutter

解决方案


声明一个布尔值怎么样

bool _executeFuture=true;

然后

Future.delayed(Duration(seconds: 10),(){
if(_executeFuture){
  setState(() {
    //some method calling
  });
}
});

现在,每当您想取消 Future 时,只需使用

_executeFuture=false;

此外,您可以使用https://pub.dartlang.org/packages/async中的 CancelableOperation


推荐阅读