можно было асинхронно и синхронно юзать ?
Имеется ввиду suspend?
Сильно зависит от специфики либы. Метод без suspend тоже можно асинхронно дергать
ну вот чтобы в андроиде не писать везде launch а там где синхронно надо, просто .await() ставить
А как ты планируешь без launch?
добавить в методы либы везде method() = async
Я про то, а как ты вызывать его будешь await же сам suspend
Launch - это асинхронный запуск, не надо его делать там, где это не нужно
у меня не проблема в саспенд функции
его надо делать, потому что я с инетом не буду же в ui работпть
Так тогда надо и контекст переключать. От того, что вы повесите suspend везде, это не спасет
у меня проблема в таком коде view.hide() // ui client.getUser(...) // not ui
я и не хочу саспенд вешать
Ну тут без ланча никак
Точнее без смены контекста. Можно использовать withContext
Я может плохо понял, а почему нельзя suspend fun getUser(...) = withContext(...) { ... } ?
а если я сделаю class MyClient : CoroutineScope { override val coroutineContext = Dispatchers.IO suspend fun a() { // Будет ли тут IO ? } }
Плехо. Поломанана structured concurrency
То, что ты унаследовался от скоупа, значит, что вот на этом классе все лончи и асинки будут с этим контекстом вызываться.
Обсуждают сегодня