Kotlin 如何返回延迟的即时结果?
我有一个条件语句,在这两种情况下都应该返回Kotlin 如何返回延迟的即时结果?,kotlin,coroutine,Kotlin,Coroutine,我有一个条件语句,在这两种情况下都应该返回Deferred结果,但我不知道如何手动创建带有预定义结果的Deferred对象。下面是代码快照: val deferredResult = if (condition) { callSuspendFunction(params) } else { deferred??? } callSuspendFunction返回async操作的结果。虽然我可以编写类似于coroutineScope{async{result}}的东西,而不是deferr
Deferred
结果,但我不知道如何手动创建带有预定义结果的Deferred
对象。下面是代码快照:
val deferredResult = if (condition) {
callSuspendFunction(params)
} else {
deferred???
}
callSuspendFunction
返回async
操作的结果。虽然我可以编写类似于coroutineScope{async{result}}
的东西,而不是deferred???
,但它看起来确实不是它应该的样子 您可以直接使用下面的方法。
在第一种情况下,它将返回int,在第二种情况下,它将返回boolean
val deferredResult = if (condition) {
3
} else {
true
}
您可以使用
CompletableDeferred
,请参阅
val value = if(true) {
callSuspendFunction(params)
} else {
CompletableDeferred(10)
}