4

In JavaScript, I could constantly fetch data without an explicit request from the user by calling a function fetchData() every five seconds using setInterval(function() { fetchData() }, 5000); and this is an incredibly useful tool for me. Is there a similar equivalent in Flutter?

halfer
  • 19,824
  • 17
  • 99
  • 186
ctrinh
  • 375
  • 1
  • 4
  • 14
  • 2
    Possible duplicate of [How do I run a reoccurring function, in Dart?](https://stackoverflow.com/questions/14946012/how-do-i-run-a-reoccurring-function-in-dart) – Saikrishna Rajaraman Jun 24 '18 at 04:17
  • 1
    An answer below has provided [this link](https://dev.to/nitishk72/understanding-streams-in-flutter-dart-2pb8); I am preserving it here in case it is deleted. – halfer Jun 01 '19 at 08:39
  • 1
    For flutter you can try with Stream and Stream Builder. I think this post will help you a lot. https://dev.to/nitishk72/understanding-streams-in-flutter-dart-2pb8 – Ye Yint Jun 01 '19 at 06:54

2 Answers2

7

This can be achieved by something like this.

import 'dart:async';

main() {
  const fiveSeconds = const Duration(seconds: 5);
  // _fetchData() is your function to fetch data
  Timer.periodic(fiveSeconds, (Timer t) => _fetchData());
}
Community
  • 1
  • 1
Jaswant Singh
  • 9,900
  • 8
  • 29
  • 50
0

Timer() and Timer.periodic() work the same way. They take duration as a parameter and an optional callback function.

 Timer(const Duration(seconds: 5), () {
  // these lines would be executed every 5s.
});