A promise implementation for Kotlin/JVM. The Api is exactly the same as Promise in JavaScript.
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
compile 'com.github.enzowyf:promise4k:1.0.0'
}To learn about promises, read Using promises first.
val promise = Promise { resolve, reject ->
setTimeout({
resolve("foo")
}, 1000)
}Promise.resolve("foo").then { value ->
println("Get some data:$value")
}Promise.reject("foo").catch { reason ->
println("Something wrong:$reason")
}Promise.resolve("foo").then { value ->
println("Get some data:$value")
}or
Promise.resolve("foo")
.then({ value ->
println("Get some data:$value")
}, { reason ->
println("Something wrong:$reason")
})Promise.resolve("foo")
.then { value ->
println("Get some data:$value")
}.catch { reason ->
println("Something wrong:$reason")
} Promise.all(listOf(promise1, promise2, promise3)).then {
println("All finish:$it")
}Promise.race(listOf(promise1, promise2, promise3)).then {
println("Race winner:$it")
}val p1 = Promise.resolve("foo")
val p2 = Promise.resolve("bar")
p1.then {
println(it)
p2
}.then {
println(it)
"Hello"
}.then {
println(it)
Promise.reject("Oh, no!")
}.catch {
println(it)
"Claim down"
}.then {
println(it)
throw Exception("Oh, my God!!!")
}.catch {
println((it as? Exception)?.message)
}