首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在内部取消协程吗?

在内部取消协程吗?
EN

Stack Overflow用户
提问于 2019-07-10 23:25:55
回答 1查看 101关注 0票数 1

如果条件不满足,我需要退出kotlin中的协程。我希望避免使用嵌套条件来保持代码的整洁。这就是我所拥有的:

代码语言:javascript
复制
GlobalScope.launch {
    var condition: Boolean = false
    if (!condition) {
        //this does nothing
        this.cancel()
    }
    println("I shouldn't print")
}
EN

回答 1

Stack Overflow用户

发布于 2020-03-28 18:34:23

您有两种方法:

  1. 只需使用return@launch statement.
  2. Throw an CancellationException从您的协程主体返回,就像this.cancel()一样。

您的代码不会停止工作的原因是因为在协程中,您的代码应该配合检查isActive或调用yield() (就像docs所说的那样)来实现您想要的功能

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

https://stackoverflow.com/questions/56973984

复制
相关文章

相似问题

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