title: Dart repeating a function after it ends
body: <p>I have a long running function that does some background processing. </p>
  
  <p>When the function completes I would like to repeat after a short delay. </p>
  
  <p>What is the best way to do this?</p>
  
  <p>I ended up with this messy code</p>
  
  <pre><code>  bool busy = false;
    new Timer.periodic(const Duration(minutes:1) , (_)async {
  
      if( !busy){
        busy = true;
        await downloader.download();
        busy = false;
      }    
    });
  </code></pre>