Having an asynchronous function that doesn't return a value, what's the ideal return type Future<Null>
or Future<void>
?, or more specifically, what's the difference in using either? Both are legal, and in both cases the return value of the function is a Future
that resolves to null
. The following code prints null
two times:
import 'dart:async';
Future<void> someAsync() async {}
Future<Null> otherAsync() async {}
main() {
someAsync().then((v) => print(v));
otherAsync().then((v) => print(v));
}
The type Null
only allows the value null
The type void
allows values of any type, but communicates that the value shouldn't be used.
It's not yet clear to me how tools support will treat void
. There will probably linter rules that hint or warn at using void
values.
Null
was used instead of void
previously because void
was only supported as return type of methods/functions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With