How to return Deferred with the instant result?
up vote
1
down vote
favorite
I have a conditional statement which should return Deferred result in both cases, but I don't know how to manually create Deferred object with predefined result. Here's code snapshot:
val deferredResult = if (condition) {
callSuspendFunction(params)
} else {
deferred???
}
callSuspendFunction returns the result of async operation. Although I can write something like coroutineScope { async { result } } instead of deferred???, but it looks really not what it should be.
kotlin coroutine
add a comment |
up vote
1
down vote
favorite
I have a conditional statement which should return Deferred result in both cases, but I don't know how to manually create Deferred object with predefined result. Here's code snapshot:
val deferredResult = if (condition) {
callSuspendFunction(params)
} else {
deferred???
}
callSuspendFunction returns the result of async operation. Although I can write something like coroutineScope { async { result } } instead of deferred???, but it looks really not what it should be.
kotlin coroutine
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I have a conditional statement which should return Deferred result in both cases, but I don't know how to manually create Deferred object with predefined result. Here's code snapshot:
val deferredResult = if (condition) {
callSuspendFunction(params)
} else {
deferred???
}
callSuspendFunction returns the result of async operation. Although I can write something like coroutineScope { async { result } } instead of deferred???, but it looks really not what it should be.
kotlin coroutine
I have a conditional statement which should return Deferred result in both cases, but I don't know how to manually create Deferred object with predefined result. Here's code snapshot:
val deferredResult = if (condition) {
callSuspendFunction(params)
} else {
deferred???
}
callSuspendFunction returns the result of async operation. Although I can write something like coroutineScope { async { result } } instead of deferred???, but it looks really not what it should be.
kotlin coroutine
kotlin coroutine
edited Nov 13 at 5:39
asked Nov 13 at 3:28
Praytic
324314
324314
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
up vote
1
down vote
accepted
You can use a CompletableDeferred, see https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-completable-deferred/
val value = if(true) {
callSuspendFunction(params)
} else {
CompletableDeferred(10)
}
add a comment |
up vote
-1
down vote
you can drictlly use like below.
In first condition it will return int and in second case it will return boolean
val deferredResult = if (condition) {
3
} else {
true
}
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
You can use a CompletableDeferred, see https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-completable-deferred/
val value = if(true) {
callSuspendFunction(params)
} else {
CompletableDeferred(10)
}
add a comment |
up vote
1
down vote
accepted
You can use a CompletableDeferred, see https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-completable-deferred/
val value = if(true) {
callSuspendFunction(params)
} else {
CompletableDeferred(10)
}
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
You can use a CompletableDeferred, see https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-completable-deferred/
val value = if(true) {
callSuspendFunction(params)
} else {
CompletableDeferred(10)
}
You can use a CompletableDeferred, see https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-completable-deferred/
val value = if(true) {
callSuspendFunction(params)
} else {
CompletableDeferred(10)
}
answered Nov 13 at 5:47
Rene
1,24115
1,24115
add a comment |
add a comment |
up vote
-1
down vote
you can drictlly use like below.
In first condition it will return int and in second case it will return boolean
val deferredResult = if (condition) {
3
} else {
true
}
add a comment |
up vote
-1
down vote
you can drictlly use like below.
In first condition it will return int and in second case it will return boolean
val deferredResult = if (condition) {
3
} else {
true
}
add a comment |
up vote
-1
down vote
up vote
-1
down vote
you can drictlly use like below.
In first condition it will return int and in second case it will return boolean
val deferredResult = if (condition) {
3
} else {
true
}
you can drictlly use like below.
In first condition it will return int and in second case it will return boolean
val deferredResult = if (condition) {
3
} else {
true
}
answered Nov 13 at 3:54
vishal jangid
1,835818
1,835818
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53273361%2fhow-to-return-deferred-with-the-instant-result%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown