Search code examples
dartsettimeoutdart-async

How do I do the equivalent of setTimeout + clearTimeout in Dart?


I'm porting some JavaScript to Dart. I have code that uses window.setTimeout to run a callback after a period of time. In some situations, that callback gets canceled via window.clearTimeout.

What is the equivalent of this in Dart? I can use new Future.delayed to replace setTimeout, but I can't see a way to cancel this. Nor can I find away to call clearTimeout from Dart.


Solution

  • You can use the Timer class

    import 'dart:async';
    
    var timer = Timer(Duration(seconds: 1), () => print('done'));
    
    timer.cancel();