Dartのthen
thenは非同期処理を書くときに使うメソッドです。async/awaitも非同期処理を書く時に使うので意味は同じになります。
同じ意味と知らず業務でthenとawaitを一緒に使っていたので反省です...。どちらか一つを使いましょう。
thenを使った例
void main() {
print(DateTime.now());
futureTest().then((result) {
print(result);
});
}
Future<String> futureTest() {
return Future.delayed(Duration(seconds: 3), () {
return DateTime.now().toString();
});
}
すると3秒後に処理が実行されています。
2021-02-23 11:35:57.660
2021-02-23 11:36:00.665
async/awaitを使った例
void main() async {
print(DateTime.now());
var result = await futureTest();
print(result);
}
Future<String> futureTest() {
return Future.delayed(Duration(seconds: 3), () {
return DateTime.now().toString();
});
}
ちゃんと3秒後に出力されています
2021-02-23 11:43:02.639
2021-02-23 11:43:05.647
thenよりasync/awaitを使った方が可読性が高いという記事がありました。業務ではどちらも使用しているので今後thenとasync/awaitが出てきた時はどんな場面で使用しているのか注目したいです。
この記事が気に入ったらサポートをしてみませんか?