Search code examples
flutterdarttimedelayfuture

What is the difference between Future.delayed vs Timer in flutter


I like to know the differences between Future.delayed and Timer method for delaying code execution. Both seem to do the same thing.

Future.delayed

Future.delayed(const Duration(milliseconds: 500), () { /*code*/ });

VS

Timer

Timer _timer = new Timer(const Duration(milliseconds: 500), () { /*code*/ });

Solution

  • A couple of differences for me.

    • Future.of returns a Future.
    • Timer does not return anything.

    So if your delayed code returns anything that you need to continue your working, Future is the way to go.


    Other difference is that the Timer class provides a way to fire repeatedly.

    This quote is from the Timer Class Reference documentation itself

    A count-down timer that can be configured to fire once or repeatedly

    And example to use Timer with the repeat could be

    Timer.periodic(Duration(seconds: 5), (timer) {
        print(DateTime.now()); 
    });
    

    Other frecuent example is to create a stopwatch, to measure timings in your code, it's usually seen using a Timer.

    GL!!