非同期処理 - 1m-llc/Flutter-KtoK GitHub Wiki

非同期メソッドの定義

メソッド (引数) async { ... }

非同期メソッドの呼び出し1

非同期メソッドでは、戻り値に「Future」というクラスのインスタンスが返されます。これは、将来的な戻り値を予約するためのものです。非同期メソッドは、実行時にはまだ処理が完了していません。そこで、「将来、この戻り値を返します」ということを予約しておくための特殊な値(Future)を返します。

Futureは、その後に<>でタイプやクラスが指定されていて、将来返される値のタイプを示しています。Futureとなっていれば、将来、Stringの値が返される、というわけです。

このFutureインスタンスには、「then」というメソッドがあり、非同期の処理が完了し、値が返されると、Futureのthenメソッドが呼び出されます。このthenの引数は通常関数になっています。非同期メソッドの戻り値がその関数に引数として渡されます。この引数を使って必要な処理を行います。

Future<?> 変数 = メソッド ();
[Future].then( ... );

非同期メソッドの呼び出し2

非同期メソッドのもう1つの呼び出し方は「処理が完了するまで待つ」というものです。これは「await」という予約語を付けてメソッドを呼び出します。これにより、処理が完了するまで待ち、終わったら次へと進むようになります。つまり非同期処理を無理やり「同期処理」に変えてしまうということです。

await メソッド();
⚠️ **GitHub.com Fallback** ⚠️