协程范围内的功能未取消

时间:2020-05-16 10:34:55

标签: kotlin kotlin-coroutines

试图掌握协程。我期望这段代码不打印任何内容。但是,它会打印“已完成的工作”,因此取消操作无济于事。怎么了

 suspend fun foo() = coroutineScope {
        launch { doSomeWork() }
    }

    suspend fun doSomeWork() {
        delay(10000)
        println("Work done")
    }


    suspend fun main() {
        val fooResult = foo()
        fooResult.cancel()
    }

1 个答案:

答案 0 :(得分:0)

我终于明白了。主协程在“ coroutineScope”调用上挂起,这就是为什么