記事の内容
この記事では、DartでFuture、async、awaitを使う方法を順番に説明します。
JavaScriptのPromiseだと考えて下さい。
Futureの使い方
コードを実行して、動作を確認してみて下さい。
「async」と「await」という機能を使って、「Future」の中の処理が終わることを待っているのがわかります。
非同期通信プログラミングの説明
上の説明では、サッパリわからないという人に、順番に説明していきたいと思います。
普通に処理を実行
これは、上から順番に実行されていきます。
sleepを入れた処理
上から順番に実行されつつ、sleep処理の所で止まります。
Futureを使って処理を止める
Futureを使うと、非同期通信処理を行うことができます。
その場合、taskの実行順序が変わります。
Futureを使った実験
上のコードでは実行順序がプログラミングには影響ありませんでした。
でも、task2の結果をtask3で使いたいとしたら、どうでしょうか?
以下のように書くと、task3に渡されたデータは、「null」になっています。
これでは意図した動作になっていません。
Futureを使いつつ、データを受け取る
task3でデータを受け取りたい場合は、「async」「await」という2つのキーワードを使います。
Futureには型も指定できます
「Future<String>」という風にすれば、Stringの型を指定できます。