iT邦幫忙

2024 iThome 鐵人賽

DAY 1
0
  • 工作上開始接觸 kotlin 的 flow, 所以先來一些關於 flow 的整理, 彙整自己的認識

什麼是 kotlin flow

  • Kotlin Flow 是一種的非同步的 stream,可以在一段時間內發出多個值。它由 Flow 介面定義,需要實作一個稱為 collect 的方法。與傳統的非同步不同,Flow 允許以聲明的方式來處理 data stream,讓應用程式更容易管理複雜的資料流。

關於 Flow 幾個特性

  • Cold Streams:
    • Flow 是 cold stream (冷資料流), 意思是在 stream 被 collect 之前,其程式碼不會執行。此行為與 RxJava 的 Observables 相似,只有當 subscriber 訂閱時才會開始 emission.
  • Asynchronous Emission:
    • Flow 可使用 emit() 函式以非同步的方式 emit 數值/資料,允許 non-blocking 的操作。這對於長時間執行的任務或 I/O 受限的作業特別有用
  • 與 Coroutines 的緊密整合;
    • Flow 可與 Kotlin Coroutines 無縫地運作,讓開發人員可以利用 suspending functions 和 Coroutine builders 來管理 concurrency,而不需要傳統 threading models 的複雜性。
  • Cancellation: Flow 支援結構化 (structured) concurrency, 當一個 Flow 不再被需要時, 你可以 cancel 一個 Flow.
  • Error Handling: 當資料處裡過程中如有異常 (exception) 發生提供有錯誤控制機制.

下一篇
#002 flow example
系列文
Notes from an android developer5
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言