首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何取消箭头-kt IO?

如何取消箭头-kt IO?
EN

Stack Overflow用户
提问于 2020-03-20 09:10:26
回答 1查看 63关注 0票数 1

是否可以取消(Arrow-Kt) IO

RxJava中,每当我做observable.subscribe({ // handle success },{ // some errohandling })时,都会给我一个Disposable,我可以在它上调用Disposable.dispose()

与coroutines类似,执行coroutineScope.launch { // Some suspending function }会返回一个Job,我可以调用这个JobJob.cancel()甚至调用coroutineScope.cancel()来取消范围内的所有协同。

我正在寻找与IO相同的东西。我如何在IO中实现同样的目标?我只打电话给IO.unsafeRunAsyncCancellable { // Some Operations },但如果必要的话,我似乎找不到取消它的办法。虽然它返回一个Disposable,但我不知道如何处理它,因为它只是() -> Unit的一个类型别名。

有人能指引我到这里来吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-20 09:29:40

正如您自己提到的,unsafeRunAsyncCancellable返回Disposable。它确实是() -> Unit的一个类型,它与Disposable#dispose froom RxJava相同。它是一个不带参数并返回Unit的函数。在调用时,它会取消IO。因为它只是一个函数,所以类似于CompositeDisposable的RxJava变成了简单的函数组合。

此外,在您想要与库交互的情况下,我们还为KotlinX协同服务结构化并发进行了集成。在这种情况下,您可以使用KotlinX集成模块,它目前处于快照状态,但预计将在本月发布。

我希望这回答你的问题:)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60771272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档