kotlin-coroutines相关内容

侦听Firebase数据库节点时如何处理Kotlin中的竞争条件

今天,当我从事我的android项目时,我看到了我的应用程序的这种怪异行为.当我单击一个图标并转到另一个活动时,这基本上会将另一个孩子插入到第一个活动正在侦听的节点中.但是令我惊讶的是,当返回时,屏幕上的所有内容都翻了一番.当我刷新视图时,它又将恢复正常.我重复了很多次,认为这可能是一个小故障.但是每次都是一样的结果.当我查看数据库时,从未创建新的子代. 这是我给侦听器的代码. (doOnDat ..

通过Key类访问CoroutineContext元素

在Ktor中,我希望实现某种方法来引用coroutineContext内部的键值对,而不会在方法参数中拖动对对象的引用.基于 https://proandroiddev.com/demystifying-coroutinecontext-1ce5b68407ad 我已经写了我的参考文献课程: class MyElement(override val key: CoroutineContext ..
发布时间:2021-02-15 19:49:06 其他开发

io.vertx.mysqlclient.MySQLPool.query(“").execute从未真正执行过,什么也不返回

我正在尝试一个非常简单的尝试,第一次使用vertx插入MySql并从中进行选择.对我来说,我可以构建和调试该应用程序很有趣,但是我从来没有成功或失败过. 如何执行插入并选择波纹管?我是否必须以某种方式封装client.query并订阅它?我完全被困住了.我在互联网上看到的所有示例都遵循这种方法. package com.mybank import io.vertx.kotlin.my ..
发布时间:2021-02-15 19:45:58 数据库

为什么带有协程的delay()单元测试失败?

我有这段代码我想测试loadSession(),而testLoadSession()是测试方法我有SuccessActivationCodeRepository用于单元测试,而observeForTesting是扩展功能 您可以看到我在单元测试中添加了更长的延迟,但是这并没有为sessionData返回null,我该如何解决? fun loadSession(activationCode: ..
发布时间:2021-02-15 19:43:48 移动开发

我们什么时候使用launch(SupervisorJob())?

我已经看到了将SupervisorJob传递给CoroutineScope的教程,以避免在子例程之一失败时所有协程作业被取消. 在run3中,我认为将SupervisorJob传递给launch可以得到相同的结果,但显然没有.如果出现异常,这似乎允许协程被重用(如果从launch中删除SupervisorJob,则第二个run2调用将不会运行协程作业),但是它的行为不像supervisorScop ..
发布时间:2021-02-15 19:42:31 其他开发

将Firebase与Kotlin协程一起使用

我在我的应用中使用Kotlin协程,并选择了Firebase作为数据库和存储的选择. 探索了Firebase之后,我意识到它的所有API都是异步的,并且异步调用的结果都在回调中返回,而摆脱回调是我在应用中使用Kotlin协程的主要原因. 这是我编写的用于将文件上传到Firebase云存储的代码,但它给出了“任务尚未完成"错误. private suspend fun saveImage ..
发布时间:2021-02-15 19:40:05 移动开发

让协程等待先前的呼叫

我还没有完全掌握Kotlin协程. 基本上,我希望协程在执行之前等待所有先前的调用完成.以下代码似乎有效.但是它在做我认为正在做的事情吗? private var saveJob: Job? = null fun save() { saveJob = someScope.launch { saveJob?.join() withContext( ..
发布时间:2021-02-15 19:39:47 移动开发

InternalCoroutinesApi注释是什么意思

我不是Kotlin协程的新手,我看到一些api用@InternalCoroutinesApi进行了注释. 从官方文件中说 不应在kotlinx.coroutines 之外使用 我不清楚他们是什么意思. 有人可以详细说明吗? 解决方案 此批注 标记协程API内部的声明,这意味着 不应在kotlinx.coroutines之外使用,因为它们的 签名和语义将在将来的版本之间更改 ..
发布时间:2021-02-15 19:39:22 其他开发

如何使请求绑定的数据在Ktor中全局可用?

我正在Ktor中建立一个微服务.当我们在应用程序模块中工作时,Ktor提供对包含授权数据的call对象的访问. 我的问题是我需要从服务级别的类访问call对象.在Spring中,您可以通过访问SecurityContext来做到这一点,而SecurityContext可以通过ThreadLocal在全球范围内使用.协程驱动的Ktor没有这种选择. 我真的需要通过服务层方法传递call对 ..
发布时间:2021-02-15 19:38:45 其他开发

如何发现“作业被取消"的位置异常来自当您所有的协程已经用CouroutineExceptionHandler包装的时候?

我阅读了所有 kotlinx UI文档并实现此处所述的ScopedActivity(请参见下面的代码). 在我的ScopedActivity实现中,我还添加了一个CouroutineExceptionHandler,尽管我将异常处理程序传递给我的所有协程,但我的用户正在崩溃,并且我在堆栈跟踪中获得的唯一信息是“作业已取消". 我搜索了几天,但没有找到解决方案,我的用户仍然随机崩溃,但我 ..
发布时间:2021-02-15 19:36:51 其他开发