kotlin-coroutines相关内容
我从一个房间数据库里得到了一系列的剧情。 我可以将此流作为实时数据进行观察,没有任何问题。 但我也想在用户单击按钮时从该流中读取最后一个值。我尝试使用first()终端流运算符,但它不能编译。您能帮个忙或提点别的建议吗? 非编译尝试读取流: bd.buttonNext.setOnClickListener { lifecycleScope.launch {
..
我正在使用RxJavatoCoroutines和Flow替换我当前的实现。我在使用某些Flow运算符时遇到一些问题。 我正在尝试在提供要收集的项之前筛选Flow中的项列表。(Flow>) 以下是Rx2上的示例: repository.findAllTasksWithCategory() .fla
..
我在区分这三个运算符之间的确切区别时遇到问题。 以下内容的文档: FlatMapMerge FlatMapConcat FlatMapLatest 这些文档链接表示两个流被平面映射为单个流对象。我对此没有意见,但我很难理解这三家运营商之间的排放会发生怎样的变化。 推荐答案 我翻阅了源代码,发现了一个我通过谷歌搜索找不到的合理指南。https://kotlinlan
..
我有一个存储库类,其异步方法返回User包装成LiveData: interface Repository { fun getUser(): LiveData } 在ViewModel的Coruotine作用域中,我希望等待getUser()方法的结果并使用User实例。 这就是我要找的: private fun process() = viewModel
..
给定2个或多个相同类型的流,是否有现有的Kotlin协程函数来合并它们,如RX合并运算符? 目前我正在考虑: fun merge(vararg flows: Flow): Flow = channelFlow { val flowJobs = flows.map { flow -> GlobalScope.launch { flow.coll
..
您能给我解释一下这两段代码有什么不同吗?第一次打印421张,第二次打印606张。为什么第一个是并行的,第二个是顺序的? fun main(args: Array) = runBlocking { var time = measureTimeMillis { val one = async { one() } val two = asy
..
嘿,我正在学习Android Kotlin中的stateflow。我正在使用回收视图创建反向对话日历视图。在我的mainactivity中有一个fragment,在那个里面我有reyclerview。我的目标是在我的回收视图中分页,所以我会提前几个月加载,而不是通过这个answer在我的回收视图中添加越来越多的数据。我成功地做到了这一点。但问题是,当我达到阈值时,它会触发新数据。我的整个列表都被引
..
突然发现,在没有suspend修饰符的情况下,递归调用Suspend函数比调用相同的函数需要更多的时间,所以请考虑下面的代码片段(基本斐波那契级数计算): suspend fun asyncFibonacci(n: Int): Long = when { n asyncFibonacci(n + 2) - asyncFibonacci(n + 1) n ==
..
我正在尝试使用Paging 3库从Room获取Flow>,然后检查项目是否在回收器视图中被选中,因此我将这个类映射到另一个名为ScanMapper的类。为了实现这种映射,每当用户将一项标记为选中时,我都会在MutableStateFlow>中更新Map。在这里,Map查找Index(Int)以获得State,State只是一个enu
..
在MuableStateFlow上使用Value End Emit Fun有什么区别? fun main() = runBlocking { val mutable = MutableStateFlow(0) launch { mutable.collect { println(it) } } mu
..
我的viewModel中有两个stateFlow。要以片段形式收集它们,我必须启动协程两次,如下所示: lifecycleScope.launchWhenStarted { stocksVM.quotes.collect { if (it is Resource.Success) { it.data?.let {
..
请在下面找到一个使用协程替换回调的函数: override suspend fun signUp(authentication: Authentication): AuthenticationError { return suspendCancellableCoroutine { auth.createUserWithEmailAndPassword(authenti
..
我正在使用Kotlin开发一个Spring Boot(2.2)项目,使用CouchDB作为(反应式)数据库,因此使用异步DAO(挂起函数或返回流的函数)。我正在尝试设置WebFlux,以便也拥有异步控制器(再次声明,我希望返回FLOWS,而不是Flux)。但我在从ReactiveSecurityContextHolder检索我的安全上下文时遇到问题。 根据我所读到的,与使用ThreadLocal
..
我在项目中使用Android Room库来操作SQLite数据库中的数据,在以前的Kotlin版本(1.5.31)中一切正常。以下是我的DAO示例: @Dao interface ServersDao { @Query("SELECT * FROM servers ORDER BY connectedDevices, ping ASC LIMIT 1") suspend f
..
我是新的协程程序,我尝试将文件上传到服务器(使用Retroff2.9.0),但没有收到响应。 下面是代码行 private suspend fun uploadFile(inputFiles: List,channel:Channel): List? { val partList = buildFilePart(input
..
我有一个用例,只要API调用出现Internet丢失或未知错误等一般性错误,就需要用重试按钮显示错误UI。当用户按上一次失败的重试时,API应调用并恢复用户流。 迁移协程方法前的API接口: interface TodoService { @POST("todo/create") fun createTodo(@Body request: TodoRequest): C
..
我正在使用Kotlin协程进行网络请求,使用扩展方法调用改造中的类,如下所示 public suspend fun Call.await(): T { return suspendCancellableCoroutine { continuation -> enqueue(object : Callback { overri
..
对于特定的回收器视图项目,如果我选择Checkbox(勾选它),则需要将其对应的TextView文本格式化为删除线。 我正在使用绑定适配器、流和实时数据。 但选中该复选框后,其对应的TextView未格式化。 但是,如果我导航到其他片段并返回到此处(FruitFragmnet),则TextView数据是格式化的。(即数据库在勾选复选框中正确更新,但实时数据发送延迟到UI) 可能的根
..
Google在Android 11中弃用Android AsyncTask API,建议使用java.util.concurrent。您可以签出提交here * * @deprecated Use the standard java.util.concurrent or *
..
以下代码段在顺序代码流中将结果返回为“null".我知道协程可能是异步处理回调的可行解决方案. fun getUserProperty(path: String): String?{var 结果:字符串?= 空database.child(KEY_USERS).child(getUid()).child(path).addListenerForSingleValueEvent(对象:ValueE
..