kotlin.js.Promise
有功能then
有了这个声明:
open fun <S> then(
onFulfilled: (T) -> S,
onRejected: (Throwable) -> S = definedExternally
): Promise<S>
我有两个函数a()
和b()
。他们都返回 Promise<Int>
。 (它们代表对服务器的一些请求。)我需要将它们组合起来并创建一个新函数,例如:
fun c(): Promise<Int> {
a().then({
b()
})
}
但是这是不可能的,因为返回类型是 Promise<Promise<Int>>
而不是Promise<Int>
.
我认为这在 Javascript 中是可能的。如何在 Kotlin 中链接 Promise?
最佳答案
为此,您需要一个额外的Promise
,例如:
fun c(): Promise<Int> {
return Promise({ resolve, reject ->
a().then({
b().then(resolve, reject);
});
})
}
上面的代码也可以通过使用 single-expression function 来简化如下:
fun c() = Promise({ resolve, reject ->
a().then({
b().then(resolve, reject);
});
});
关于promise - 如何从嵌套的 kotlin.js.Promise 创建 Promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44544125/