We are able to define an async inline method
in different ways, Is there any difference in the result or under the hood?
1.
Future<void> counter() async => await Future<void>.delayed(
const Duration(seconds: 5),
() => print('Result'),
);
2.
Future<void> counter() async => Future<void>.delayed(
const Duration(seconds: 5),
() => print('Result'),
);
3.
Future<void> counter() => Future<void>.delayed(
const Duration(seconds: 5),
() => print('Result'),
);
CodePudding user response:
Timing, if anything.
The async => await
version waits for the delayed future created by Future.delayed
to complete before returning, then it completes the returned future.
The async =>
version should do precisely the same, since the await is implicit in the return.
The =>
version returns the future created by Future.delayed
directly.
In either case, the returned future will be completed after the 5 second duration has passed. It may or may not go through an extra intermediate microtask.