Dart 學習筆記 非同步支援

2021-10-02 13:25:05 字數 1100 閱讀 1509

參考:

dart庫中包含許多返回future 或 stream物件的函式. 這些函式在設定完耗時任務(例如i/o操作)後, 就立即返回了,不會等待耗任務完成。 使用async 和 await關鍵字實現非同步程式設計。 可以讓你像編寫同步**一樣實現非同步操作。

可以通過下面兩種方式,獲得 future 執行完成的結果:

使用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...