【发布时间】:2019-10-16 04:11:40
【问题描述】:
关于协程的新手问题:-)
对于不返回值的协程,有没有办法在协程完成时执行一些代码?
在本例中,funcA() 执行一些异步调用,完成后funcB,funcC 需要完成,其余代码可以独立于funcA() 完成继续执行
... other code executing
... other code executing
launch {
funcA()
}
funcB()
funcC()
... other code executing
... other code executing
一种方法是将funcB、funcC 包含在一个方法中,我们可以将async 与await 一起使用...但是为什么要为此返回一个值。
即
executeFunBC()
{
funcB()
funcC()
}
launch {
val result = funcA()
}
executeFunBC(result).await()
基本上,在某些语言中,您可以使用“块”或闭包,并在以相同方法完成该块时执行一些代码。 (类似于回调)
回到我的问题:
有没有办法在同一个函数中定义funcB、funcC在完成funcA()时的执行?
【问题讨论】: