【发布时间】:2019-08-22 02:11:09
【问题描述】:
使用协程 1.3-RC2,我想做以下事情:
class Foo {
fun getPrimes() = produce {
var i = 0
while (true) {
if (i.isPrime()) {
send(i)
}
i++
}
}
}
但它抱怨produce 由于接收器不匹配而无法使用。我可以将produce{} 包装在runBlocking 中,它可以编译,但它会阻塞。
那么,如何实现这种生产者模式,使得客户端代码可以运行myFoo.getPrimes().consumeEach(...)?
【问题讨论】: