Kotlin 流程宣告如下:
掛起函式異步回傳單個值,但我們如何回傳多個異步計算的值?這就是 Kotlin Flows 的用武之地。
但是,如果我的流程的來源是在它完成但不回傳資料時,是否有辦法從流程中確定這一點?例如,如果流的源呼叫了后端 API,但 API 沒有回傳資料,那么有沒有辦法確定流何時完成并且沒有資料?
uj5u.com熱心網友回復:
您可以toList()在流程上執行并檢查它是否為空
uj5u.com熱心網友回復:
如果 API 回傳 a Flow,通常預期回傳 0 個或更多元素。該流通常由一些代碼收集以處理值。該collect()呼叫是一個掛起函式,將在流程完成時回傳:
val flow = yourApiCallReturningFlow()
flow.collect { element ->
// process element here
}
// if we're here, the flow has completed
任何其他終端運算子(如first()、toList()等)將以某種方式處理流的完成(甚至可能提前取消流)。
我不確定您要在這里尋找什么,但例如有一個終端操作員計數:
val flow = yourApiCallReturningFlow()
val hasAnyElement = flow.count() == 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/312844.html
標籤:科特林 kotlin-flow
