Родительская работа сопрограммы - исключенное исключение - PullRequest
0 голосов
/ 28 января 2020

Я выполнял простой запрос Retrofit с Coroutine launch и получил эту ошибку kotlinx.coroutines.JobCancellationException: Parent job is Cancelled; job=JobImpl{Cancelled}@759d1e0

Запрос работает в первой попытке и возвращает исключение в секунду.

Вот мой класс:

class QuestionPresenter(
    private val uiContext: CoroutineContext,
    private val view: QuestionView
): BasePresenter(uiContext, view) {

    val service = ApiServiceImpl()

    fun getSendQuestionResponse(email: String, text: String) {

        view.showProgressIndicator(true)

        val job = launch(coroutineContext) {
            val data = service.getRetrofit().getSendQuestionResponse()
            if (data != null) {
                view.getSendQuestionResponse(true)
            }
        }.invokeOnCompletion {
            it?.let {
                view.showError(it)
            }
            view.showProgressIndicator(false)
        }
    }

}

И код для создания контекста сопрограммы:

private val job = Job()

private val exceptionHandler = CoroutineExceptionHandler { _, throwable ->
    baseView.showError(throwable)
}

override val coroutineContext: CoroutineContext
    get() = mainContext + job + exceptionHandler

Пожалуйста, дайте мне несколько советов о том, что не так

...