Flutterを使ったアプリケーション開発において、非同期処理は避けては通れないテーマです。非同期処理により、ネットワークリクエストの結果を待つなど、時間がかかる操作をバックグラウンドで行い、ユーザーインターフェースの応答性を保つことができます。Flutter(及びDart)における非同期処理の主要な要素の一つがFuture
とそれに関連するthen
メソッドです。本記事では、then
メソッドについて詳しく解説します。
thenメソッドとは何か
then
メソッドは、Future
クラスのインスタンスメソッドであり、非同期処理の完了を待つために使用します。Future
は、未来のある時点で利用可能になる値を表現します。このFuture
の完了(成功または失敗)を待ち、その結果に基づいて何かを行うには、then
メソッドを使用します。
thenメソッドの使用例
then
メソッドは、非同期処理が成功したときに実行されるコールバック関数を引数として取ります。この関数は、非同期処理からの結果を受け取り、それに基づいて何かを行います。
以下に具体的な使用例を示します:
Future<int> fetchNumber() {
return Future.delayed(Duration(seconds: 2), () => 42);
}
void main() {
print('Fetching number...');
fetchNumber().then((result) {
print('The number is $result');
});
print('Fetch initiated.');
}
このコードでは、fetchNumber
関数は2秒後に整数42
を返すFuture
を作成します。そして、then
メソッドを使ってその結果を待ち、結果が得られたらそれを出力します。
このコードを実行すると、まずFetching number...
とFetch initiated.
がすぐに出力され、その2秒後にThe number is 42
が出力されます。これは、then
メソッドが非同期に動作し、コールバック関数をFuture
の完了後に実行するからです。
以上、then
メソッドの概要と使用方法について解説しました。then
メソッドを使うことで、非同期処理の結果に基づく操作を簡単に記述することができます。
コメント