问题标签 [kotlinx.coroutines]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kotlin - 生产者内部的侦听器
我正在尝试producer
为听众创作。我的代码看起来像这样
但是我遇到了错误Suspension functions can be called only within coroutine
,这是有道理的。我的问题是。有没有办法使用协程来实现这种模式?
kotlin - 如何在 Kotlin Spek 测试中组织多个协程和期望块?
it
我写了一个失败的 Spek 测试,因为我对涉及多个协程和函数 的执行顺序做出了错误的假设:
我期望abcd
被打印,但acbd
实际上被打印了。
我应该如何编写这个测试,以便它可以按预期的顺序进行视觉读取和执行?
kotlin - Kotlin 演员之间的交流
可以向演员发送消息,actor.send()
或者actor.offer()
一旦我的演员从其频道获得消息,我想返回响应。我该怎么做呢?我没有看到任何明显的内置方法。
kotlin - Spring sleuth zipkin 跨越不嵌套在 Kotlin 协程中
我可以从以下 Spring Boot 控制器代码中看到跨度记录在 Zipkin UI 中:
日志输出如下所示:
但跟踪在 UI 中是独立的。
我希望对 Google 和 Facebook url 的两个调用同时嵌套在对/concurrent1
端点的调用下。
我怀疑这是由于执行协程的线程与启动 Spring 应用程序的线程不同,但我现在不知道如何继续使用 Spring Sleuth!
kotlin - 无法执行kotlin协程(无此方法异常
我从 kotlin 示例中获取了这个简单的代码片段:
当我尝试运行它时,它会抛出
我使用kotlinVersion = '1.1.51'
有什么建议吗?
kotlin - 带有返回值的 Kotlin 协程
我想创建一个具有返回值的协程方法。
例如)
如果我想以 sum 方法返回总计,我该怎么做?
像,
android - 如何在 Java 中轻松使用 Kotlin 通道生产者?
作为开发新 API 的一部分,我正在学习使用 Kotlin。最初我希望在 Java (Android) 项目中使用 Kotlin API,但从长远来看,我希望完全采用 Kotlin。
作为改进长期运行过程的实现的一部分,我想使用协程。具体来说,包中的频道生产者kotlinx.coroutines
。
例如:
在 Java 中使用它的最佳方法是什么?我可以向 Kotlin 和/或 Java 添加临时的“帮助”函数。
kotlin - 为什么在 Kotlin 中无法使用方法引用来引用 `suspend` 函数?
我有一个Job
实例列表,我想在启动后的某个时候取消这些实例。这看起来如下:
不幸的是,这里不可能使用方法参考。原因:cancelAndJoin
是一个suspend
函数,正如编译器抱怨的那样:
“错误:(30, 24) Kotlin:不支持 [对挂起函数的可调用引用]”
为什么这不起作用?
android - Android 中的 Kotlin 协程:为什么使用 Anko 的 bg() 而不是 async()?
我今天开始在 Android 上使用 Kotlin 协程,我注意到 Anko 有一套自己的辅助方法。我理解为什么asReference()
存在,但我不知道为什么会存在,bg()
因为核心协程库已经有了async()
.
bg()
代码非常简单,它在async()
内部使用:
那么使用bg()
而不是有什么好处async()
呢?async()
Android应用程序在某种程度上效率低下吗?
android - 使用 Anko Coroutines 扩展的正确方法是什么?
所以我正在将一个示例应用程序从 RxJava 迁移到 Kotlin/Anko Corountines,我想知道我是否正在做最好的(第一个)方法:
我正在使用 MVP 架构,其中我的Presenter
基类有一个CompositeSubscription
并且在onDestroy
's 片段或活动方法中简单地取消订阅并清除CompositeSubscription
对象。但是我想知道asReference()
Anko Coroutines 中的函数是否也一样,并且不需要保存列表Deferred<T>
然后对其进行迭代并一一取消。
顺便说一句,如果我添加一个Thread.sleep(5000)
来模拟大事务并销毁片段,我可以在 logcat 中看到 HTTP 响应,即使片段不可见/被破坏,而 RxJava 不会发生,所以我认为我没有正确使用。
更新
我可以在调用方法时取消协程,job.cancel()
但onDestroy()
要使其正常工作,我必须检查作业是否处于活动状态,并将其转换为 if/else 和返回或不返回数据。取消工作后有没有更好的方法来退货?