[英]Is there a Kotlin Coroutines Channel equivalent of RxJava's onDispose?
如果在RxJava中扩展Observable<>
,则可以重写OnDispose()
并执行清理操作,例如为垃圾收集器清除内容。
每当处置此Observable<>
任何订阅时,都会调用OnDispose()
。
但是,我似乎找不到协程通道的任何等效功能。
我知道channel.close(),但是不一样。
有没有办法传播
我假设您在谈论doOnDispose
中的doOnDispose。 在这种情况下,您正在向通道发送元素,并且想知道下游何时取消了通道。 如果您在单个函数中构造生产代码,则可以简单地使用try/finally
:
val channel = produce {
// channel producing code is here
try {
// this example is sending 10 ints, but it can be any other code
repeat(10) { send(it) }
} finally {
// doOnDispose here!
}
}
如果您的发送代码很分散,并且您想接收取消回调,则可以使用SendChannel.invokeOnClose
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.