【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part29 Dartの特徴
「基礎 から 学ぶ Flutter 」という書籍で 学習 したことを ブログでアウトプットしていこうと思います。今回は Dart編 ( part29 )です。
前回
【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part28 Dartの特徴
今回もDartの特徴を学習します。
Dartの特徴
イベントループ
Dartはシングルスレッド
で動作します。
「処理」はイベントループ
という機能のイベントキュー
に格納されて順次実行されます。
長~い処理がある場合、その後ろに並んでいる処理は待たなくてはなりません。
これは「 = 非同期」ではありません。
実際、マウスのクリックやファイルのI/O, タイマー完了など様々な場面で使用されます。
Dartで非同期の処理をFutureクラス
で可能にしています。
並列処理はできませんが非同期処理はちゃんとできるんですね!
こちらの記事から
The Event Loop and Dart (翻訳) – Qiita
こちらの記事(原文?)を簡単に読んだ感じではDartの非同期はIsolate
という機能が重要なようですね。
Dart asynchronous programming: Isolates and event loops | by Kathy Walrath | Dart | Medium
Future
他の言語ではプロミス
と呼ばれている機能(クラス?)です。
非同期処理をする際にこの機能がないとコールバック地獄が発生するとのこと。なんででしょうか?
非同期処理がしっかり完了した後、何か処理を行いたい場合にこのコールバック地獄に陥るということでしょうかね。
「待ち合わせ」と呼んでいる状況でしょうか。
コールバック地獄は「深いネスト」の実装になることが多く可読性が低下してしまうのが特徴のようです。
getA(a, (b) {
getB(b, (c) {
getC(c, (d) {
print(d);
});
});
});
こうならないようにFuture
という機能を使うようです。
Future
の特徴は「つなぐ」です。
最後に
Future
は少し長そうなので次回にまわしましょう。
今日はここまで!
ディスカッション
コメント一覧
まだ、コメントがありません