本文介紹dart的非同步程式設計。
目錄
asynchrony support(非同步支援
declaring async functions(宣告非同步方法)
using await expressions with futures(使用 await 表示式)
dart 有一些語言特性來支援 非同步程式設計。 最常見的特性是async
方法和await
表示式。
dart 庫中有很多返回 future 或者 stream 物件的方法。 這些方法是 非同步的: 這些函式在設定完基本的操作 後就返回了, 而無需等待操作執行完成。 例如讀取乙個檔案,在開啟檔案後就返回了。
有兩種方式可以使用 future 物件中的 資料:
同樣,從 stream 中獲取資料也有兩種 方式:
使用async
和await
的**是非同步的, 但是看起來有點像同步**。 例如,下面是一些使用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 ...