Closed12
android で amplify を使う
 tkt
tktAmplify.Auth.signIn(
    username,
    password,
    { result ->
        Log.i(
            "AuthQuickstart",
            if (result.isSignInComplete) "Sign in succeeded" else "Sign in not complete"
        )
    },
    { error -> Log.e("AuthQuickstart", error.toString()) }
)
このままだと処理の完了をとるのがめんどくさい
coroutine とかつかっていい感じに書きたい
 tkt
tkt(coroutine よくわかってないけど)
 tkt
tktcoroutine
 tkt
tkt同じ気持ちの人たち
 tkt
tkthttps://qiita.com/offwhite/items/94540e7cc3b330507c9c coroutine わかりやすそう
 tkt
tkt力技
 tkt
tktpackage com.example.appsyncsample.app.repository
import com.amplifyframework.core.Amplify
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
sealed class Result<out R> {
    data class Success<out T>(val data: T) : Result<T>()
    data class Error(val exception: Exception) : Result<Nothing>()
}
class LoginRepository {
    suspend fun makeLoginRequest(username: String, password: String): Result<String> {
        return suspendCoroutine { continuation ->
            Amplify.Auth.signIn(
                username,
                password,
                { res ->
                    val result =
                        Result.Success(if (res.isSignInComplete) "Sign in succeeded" else "Sign in not complete")
                    continuation.resume(result)
                },
                { error ->
                    val result = Result.Error(Exception(error.toString()))
                    continuation.resume(result)
                }
            )
        }
    }
}
通った
 tkt
tktcontinuation.resume が呼ばれるまで suspendCoroutine が待ってくれて、 continuation.resume(result) の result を return してくれる。
ただ、まだ suspendCoroutine の仕様は理解してない。どこでブロックされてるみたいな
 tkt
tkt記事にした
 tkt
tktよさげ
 tkt
tktよさげ
 tkt
tkt
suspendCoroutine の話
このスクラップは2021/01/05にクローズされました



