функция suspend fun foo(kek): Bar в котлине.
вызываю в скале её Service.foo(kek)
получаю ошибку компиляции
Unspecified value parameter kotlin.coroutines.Continuation
как кушать такое?
Стараться не вызывать саспенды из скалы, это больно. Нужно писать переходник на котлине и передавать ему Executor
куда глядеть на такое?
пишешь синхронный метод, возвращающий CompletableFuture, а внутри исполняешь корутину на экзекуторе
Суспенд функция это сахар над деферредами
котлин обернет все что после вызова твоей суспенд функции в континуейшн и передаст сам в эту функцию, а скала компайлер так не умеет - тебе надо ему сказать
Костыльное решение - блокирующе подождать выполнения в каком-то неблокирующем месте
BuildersKt.async( GlobalScope.INSTANCE, EmptyCoroutineContext, CoroutineStart.DEFAULT, call suspend fun) какие подводные?
о подводных я не могу судить ибо я делал это всего один раз
Обсуждают сегодня