我如何取消 Future.delayed 函数调用

Dee*_*lot 5 dart flutter

我怎样才能取消 Future.delayed

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

Future.delayed(Duration(seconds: 10),(){
  setState(() {
    //some method calling
  });
});
Run Code Online (Sandbox Code Playgroud)

Dev*_*Dev 2

声明一个布尔值怎么样

bool _executeFuture=true;
Run Code Online (Sandbox Code Playgroud)

然后

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

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

_executeFuture=false;
Run Code Online (Sandbox Code Playgroud)

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