LiveData 是 Android 中一個很有用的項目,它是一種可觀察(Observe)的資料存儲器類(data holder)。它會感知 Android 的...
今天再講些簡單的,順便複習複習前面的東西,之後又有幾天比較硬的內容我們每次創建coroutine都匯回傳一個job,而我們除了cancel,還可以用他的其他方法...
前一篇文章中,我們介紹了 State Flow 以及它的使用方式,本篇將繼續討論 State Flow。 我們知道 SharedFlow 有提供一個函式能夠讓一...
前言,今天寫一寫就離題了QQ,前面用ktor架websocket,在手機app接起來,複習一下channel的特性,後面離題講了手機怎麼接到localhost...
State Flow 是從 Shared Flow 繼承而來的,跟 Shared Flow 不同的地方在於它是有初始值的,至少會重播一個值給訂閱者,所以它最少會...
儘管大家講coroutine都會提到channel和flow,然後開始比較,但我個人覺得channel和flow兩個你都沒有概念的時候,聽我比較很難知道我在說什...
昨天我們使用了 shareIn 將 Flow 轉成 SharedFlow, 我們來研究一下這個函式。 public fun <T> Flow<...
鑒於我文章越寫越長,偏離了我原本想讓人輕鬆閱讀的感覺,決定寫個新手實用,以coroutine接個restful api的例子,如果你已經很會接了,這篇完全可以跳...
系統除了即時接受及回應使用者請求,也需要執行各種非同步工作,例如背景排程及寄送訊息通知…等。在實作上,雖然我可以直接使用 CompletableFuture,...
Flow 是 cold stream,只有在呼叫 Terminal operator 的時候才會執行。也就是說每一個 Flow 都只有一次性的工作,只要呼叫一次...
前面我講10篇了,告訴你們coroutine是什麼,怎麼用,如何切thread,和她背後發生什麼事 其實有人要我寫那些內建的suspend function,但...
Flow 是屬於 coroutine 範圍項目,coroutine 中一個重要的特點可以輕易的切換執行緒,在 Flow 也有這項功能嗎? 我們知道要在 Coro...
前面我們談了,coroutine的coroutineScope、繼承、異常處理和取消,也在文中提到了他們和structure concurrency的特性,想必...
suspend他並不能切換線程,切換線程的是內部自帶的suspend函數,ex. withContext coroutine只是能用阻塞寫法寫出非阻塞代碼,本質...
Flow 經過 Intermediate operators 將資料經過處理之後,最後一步則是要把資料輸出,而將資料輸出則是要透過 Terminal opera...
我們在上一篇的文章中,介紹了 Flow 的基本概念,包括如何建立一個 Flow,以及 Flow 是一個 Cold stream,所謂的 cold stream...
runBlocking 中文用戶如我們? 直譯一下就是,跑一個塞住 恩,三小? 他真正的意思是,執行一個程式碼區塊,但他的一個特點就是,他真的會塞住,有別於la...
What is Flow? Flow 是用來處理非同步的資料流的一種方式,它會按照發射 (emit) 的順序來執行。 An asynchronous data...
Cancellation is important for avoiding doing more work than needed which can was...
在上一篇文章我們建立 Channel 時,使用 Channel<E>() 來建立一個 Channel。這個方法是由 Coroutine 所提供的一個...
Coroutine支援kotlin一般的Exception處理 try/catch/finally, 或是runningCatch (內部依然使用try/cat...
在前面的文章中,我們介紹了 coroutine 的基本原理,如何使用 launch 、 async 建立 CoroutineScope,如何選擇適當的調度器,讓...
coroutine神奇又好用,那我要怎麼開始呢?官方提供了兩種方法,launch和 async launch launch的意思,大概是我要這裡創造新的coro...
上面講到job會由系統分配,但為什麼我們又能把job當作參數傳入coroutine呢? 繼承 在前面講過,我們可以在coroutine再建立coroutine,...
這是我們內建的 suspend 函式第三篇,讓我們看看有哪些吧: joinAll() 還記得 join() 的功能是什麼嗎?join() 可以讓目前的 cor...
withContext suspend fun<T> withContext(context: CoroutineContext,...
Coroutine 的三大要素不知道大家還記得嗎?CoroutineScope、Suspend function、Dispatchers。 CoroutineS...
Coroutine 一個重要的特性就是可以輕易的切換執行緒,不過 Coroutine 是使用 CoroutineDispatcher (調度器) 來切換執行緒,...
程式在執行的時候,有些時候我們會遇到一些例外的情況,我們一般會使用 try-catch 來攔截程式執行所拋出的例外,用 try-catch 攔截到之後,我們就可...
還記得launch 的回傳值是 Job 嗎?我們可以使用 job 的 cancel() 來取消該 Coroutine。不知道你有沒有想過 Job 是什麼東西呢?...