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)
}