我撰寫的代碼在沒有 kotlin 流的情況下作業正常,但我想嘗試 kotlin 流,當我在存盤庫中使用它時,但不知何故,它甚至沒有進入內部,我找不到任何解決方案,因為它沒有拋出任何錯誤,只是沒有進入內部功能,我認為這是因為流量收集器。它即將到達存盤庫,但對于 repo 它沒有進入。
class NewsRepositoryImpl(private val newsService: NewsService) : NewsRepository {
override suspend fun getNews(search: String): Flow<ResultWrapper<List<Article>>> = flow {
emit(ResultWrapper.Loading)
try {
val news = newsService.getNews(search, BuildConfig.API_KEY)
emit(ResultWrapper.Success(news.articles.map { it.toArticle() }))
} catch (e: Exception) {
emit(ResultWrapper.Error(e.message))
}
}
}
uj5u.com熱心網友回復:
使用flow
構建器創建冷資料流。其中的代碼僅在收集流時執行,即呼叫終端運算子,例如collect
, collectLatest
, first
... 。
coroutineScope.launch {
newsRepository.getNews("news").collectLatest { result ->
// use result
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/456618.html