Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.54 KB | None | 0 0
  1. var fail = true;
  2.  
  3. int sheep() {
  4. if (fail) {
  5. fail = false;
  6. throw Exception("boom!");
  7. }
  8.  
  9. return 1;
  10. }
  11.  
  12. Future<dynamic> retry(Function f, {Duration retryDelay, int numberOfRetries}) {
  13. try {
  14. return Future.value(f.call());
  15. } catch (_) {
  16. if (numberOfRetries > 0) {
  17. return Future.delayed(
  18. retryDelay, () => retry(f, numberOfRetries: numberOfRetries - 1));
  19. } else {
  20. rethrow;
  21. }
  22. }
  23. }
  24.  
  25. void main() async {
  26. print(await retry(() => sheep(),
  27. retryDelay: Duration(seconds: 1), numberOfRetries: 1));
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement