參考:
可以通過下面兩種方式,獲得 future 執行完成的結果:dart
庫中包含許多返回future 或 stream
物件的函式. 這些函式在設定完耗時任務(例如i/o
操作)後, 就立即返回了,不會等待耗任務完成。 使用async 和 await
關鍵字實現非同步程式設計。 可以讓你像編寫同步**一樣實現非同步操作。
使用async 和 await
關鍵字的**是非同步的。 雖然看起來有點想同步**。
例如,下面的**使用await
等待非同步函式的執行結果。
future checkversion() async
使用try, catch, 和 finally
來處理**中使用await
導致的錯誤。
try catch (e)
函式體被async
標示符標記的函式,即是乙個非同步函式.
例如:
futurelookupversion() async => '1.0.0';
詳細介紹可檢視:dart 語言stream詳解
當需要從stream
中獲取資料值時, 可以通過一下兩種方式:
await for (varortype identifier in expression)
上面 表示式 返回的值必須是 stream 型別。 執行流程如下:
等待,直到流發出乙個值。
執行for
迴圈體,將變數設定為該發出的值
重複1和2
,直到關閉流。
使用break 或者 return
語句可以停止接收stream
的資料, 這樣就跳出了for
迴圈, 並且從stream
上取消註冊。
dart 學習筆記
dart version dart vm version 1.24.3 wed dec 13 23 26 59 2017 on macos x64 不一樣,提示報錯 2.提示錯誤 本書並非詳盡無遺,只是簡單介紹一下這種語言,供喜歡以身作則的人學習。您可能還想檢視語言和庫教程 簡單的helloworl...
Dart 非同步操作
dart 語言是目前少數幾個支援非同步操作的語言。一般使用async函式和await表示式實現非同步操作。dart 庫提供asynchronous的功能。該功能提供介面來進行耗費時間的操作,二呼叫的主 不用等待耗時操作執行完成後才進行操作。該功能返回future或stream物件。使用了async或...
Dart 學習筆記2
關於類與繼承 1 簡單的類的使用 void main class person void demofunction void main class students extends person 重寫 override void demofunction void main class examin...