Size: a a a

Kotlin Community

2020 October 17

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
Launch - это асинхронный запуск, не надо его делать там, где это не нужно
его надо делать, потому что я с инетом не буду же в ui работпть
источник

AN

Alexander Nozik in Kotlin Community
саша сок #KotlinGang
его надо делать, потому что я с инетом не буду же в ui работпть
Так тогда надо и контекст переключать. От того, что вы повесите suspend везде, это не спасет
источник

с#

саша сок #KotlinGang... in Kotlin Community
Igor
Я про то, а как ты вызывать его будешь await же сам suspend
у меня проблема в таком коде

view.hide()  // ui
client.getUser(...)  // not ui
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
Так тогда надо и контекст переключать. От того, что вы повесите suspend везде, это не спасет
я и не хочу саспенд вешать
источник

AN

Alexander Nozik in Kotlin Community
suspend надо вешать в двух случаях:
1) если есть точки останова внутри.
2) если вы таким образом размечаете код, который не долден запускаться на UI
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
suspend надо вешать в двух случаях:
1) если есть точки останова внутри.
2) если вы таким образом размечаете код, который не долден запускаться на UI
fun request(...) = async {

}

я хочу ко всем запросам добавить такое
источник

AN

Alexander Nozik in Kotlin Community
саша сок #KotlinGang
у меня проблема в таком коде

view.hide()  // ui
client.getUser(...)  // not ui
Ну тут без ланча никак
источник

AN

Alexander Nozik in Kotlin Community
Alexander Nozik
Ну тут без ланча никак
Точнее без смены контекста. Можно использовать withContext
источник

с#

саша сок #KotlinGang... in Kotlin Community
ну окей, хорошо, тогда по-другому сделаю
источник

AN

Alexander Nozik in Kotlin Community
саша сок #KotlinGang
fun request(...) = async {

}

я хочу ко всем запросам добавить такое
А, это пожалуйста. Будет тогда у вас CoroutineScope.requestAsync(): Deferred<> = async{}
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
А, это пожалуйста. Будет тогда у вас CoroutineScope.requestAsync(): Deferred<> = async{}
ну так вот я про это и говорю

чтобы там, где надо это асинхронно сделать я просто не делал await
источник

с#

саша сок #KotlinGang... in Kotlin Community
или там будет варн?
источник

I

Igor in Kotlin Community
саша сок #KotlinGang
ну так вот я про это и говорю

чтобы там, где надо это асинхронно сделать я просто не делал await
А результат ты как обработаешь?
источник

AN

Alexander Nozik in Kotlin Community
саша сок #KotlinGang
ну так вот я про это и говорю

чтобы там, где надо это асинхронно сделать я просто не делал await
Тогда не async, а launch
источник

с#

саша сок #KotlinGang... in Kotlin Community
Igor
А результат ты как обработаешь?
в колбеке, там лямбда ещё для нормальной обработки
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
Тогда не async, а launch
понял, хорошо, тогда разделять буду
источник

с#

саша сок #KotlinGang... in Kotlin Community
и launch
источник

AN

Alexander Nozik in Kotlin Community
саша сок #KotlinGang
в колбеке, там лямбда ещё для нормальной обработки
А нафига мешать корутины с колбэками?
источник

AN

Alexander Nozik in Kotlin Community
Вы похоже что-то не то делаете
источник

I

Igor in Kotlin Community
Кстати, а из java можно с deferred работать? Или надо CF всегда юзать?
источник