【发布时间】:2022-01-04 17:51:17
【问题描述】:
我正在尝试确保我的应用在发生后端故障时做出适当的响应,我正在使用 realm/mongo 创建一个获取用户的异步任务。
我有这两个块:
override suspend fun logIn(accessToken: String) {
val user = logInInternal(accessToken)
realmAsyncOpen(user)
}
和
private suspend fun logInInternal(accessToken: String) = suspendCancellableCoroutine<User> { continuation ->
val customJWTCredentials: Credentials = Credentials.jwt(accessToken)
app.loginAsync(customJWTCredentials) {
if (it.isSuccess) {
continuation.resumeWith(Result.success(app.currentUser()!!))
} else {
continuation.resumeWithException(RealmLoginException().initCause(it.error))
}
}
}
当我点击resumeWithException 部分时,logInInternal 崩溃。我也尝试过使用 app.login(credentials) 因为该方法正在暂停,但没有运气。为什么我的应用在异常恢复时会崩溃?
我在被击中时导致呼叫 502。
【问题讨论】:
标签: kotlin kotlin-coroutines coroutine suspend