Flutter之Dart語言(三)

2021-09-12 07:16:30 字數 1465 閱讀 2661

本文介紹dart的非同步程式設計。

目錄

asynchrony support(非同步支援

declaring async functions(宣告非同步方法)

using await expressions with futures(使用 await 表示式)

dart 有一些語言特性來支援 非同步程式設計。 最常見的特性是async方法和await表示式。

dart 庫中有很多返回 future 或者 stream 物件的方法。 這些方法是 非同步的: 這些函式在設定完基本的操作 後就返回了, 而無需等待操作執行完成。 例如讀取乙個檔案,在開啟檔案後就返回了。

有兩種方式可以使用 future 物件中的 資料:

同樣,從 stream 中獲取資料也有兩種 方式:

使用asyncawait的**是非同步的, 但是看起來有點像同步**。 例如,下面是一些使用await來 等待非同步方法返回的示例:

await lookupversion()
要使用await,其方法必須帶有async關鍵字:

checkversion() async  else 

}

可以使用try,catch, 和finally來處理使用await的異常:

try  catch (e)
乙個 async 方法 是函式體被標記為async的方法。 雖然非同步方法的執行可能需要一定時間,但是 非同步方法立刻返回 - 在方法體還沒執行之前就返回了。

checkversion() async 

lookupversion() async => /* ... */;

在乙個方法上新增async關鍵字,則這個方法返回值為 future。 例如,下面是乙個返回字串 的同步方法:

string lookupversionsync() => '1.0.0';
如果使用 async 關鍵字,則該方法 返回乙個 future,並且 認為該函式是乙個耗時的操作。

futurelookupversion() async => '1.0.0';
var entrypoint = await findentrypoint();

var exitcode = await runexecutable(entrypoint, args);

await flushthenexit(exitcode);

參考文件:

6 Flutter應用開發語言Dart語法運算子

學過其他計算機語言的一般會接觸各種各樣的運算子,掌握了基礎,那學習dart相關運算子就可以得心應手。了解這些有什麼意義呢?在實際工作中這些場景會經常用到運算子,例如 專案計算商品 主要用到算術運算子 商品滿打折 用到算術運算子,關係運算子 優惠券在有效期內,購物總 超過閾值可以使用 用到邏輯運算子,...

Flutter之Dart基本語法學習

宣告變數 var lll 預設值是null dynamic 宣告可以改變型別 使用final 和 const 進行修飾乙個常量 例 var number number 15 print number number 2 型別可變 print number final c 30 print c cons...

flutter學習筆記之Dart 5函式

函式定義 返回型別 可以不要 函式名 引數1,引數2,else f1 小明 男 20 f1 小花 女 2 命名引數 void f2 string name,string else f2 小明 男 age 20 f2 小花 女 匿名函式 var list 1,2,3,4,5 var newlist1 ...