Никто не подскажет? Упрощу пример: val dataF: Flow<String> dataF.collect { println("collect $it") delay(1000) println("collect after dela...
Можно сделать проще и без каналов. Примерно так: var task: Deferred<Unit>? = null fun startLoadOnScreen1() { task = async(UI) { doJob() } } fun waitForComple...
Товарищи! Разбираюсь тут с kotlinx.coroutines.Flow. Не могу никак написать функцию toResultFlow, которая оборачивает каждый элемент в Result. Проблема в ветке, которая обрабат...
Придумал как сделать через канал размера 1: val channel = Channel<Result?😠capacity = 1) init { launch { var result: Result? = null wh...
Вопрос по созданию annotation processor-ов для kotlin кода: Вот есть у меня аннотация: @Target(AnnotationTarget.PROPERTY) @Retention(AnnotationRetention.SOURCE) annotation cl...
А как запускается кодогенератор? Градлом? Не могу найти более-менее рабочий способ. Плагины с гитхаба либо не работают, либо требуют наличия бинарника генератора, а это как-то...
@relizarov А почему в AbstractContinuation:103 запрограммировано такое странное поведение: если мы в Cancelled состоянии, то любой вызов resume просто игнорируется, а вот resu...
У меня вот тоже вопрос есть по flow, точнее по switchMap. Есть простой код: https://pl.kotl.in/I31kQMPeS Я ожидаю, что он 2 раза напечатает мне строку "collect after delay $it...
О как, действительно. А куда девается JobCancellationException внутри collect тогда. Молча съедает его и продолжает выполнение как будто ничего не было?
Товарищи, а можно как-то написать потокобезопасный счетчик на каналах типа val counter = ConflatedBroadcastChannel<Int>(0) без использования synchronized?.
Скажите что из этого верно: 1. Если задача уже завершена успешно, то join() вернется сразу. 2. Если задача отменена, то join() бросит исключение. 3. Если задача выполняется, т...
К его работе у меня нет притензий, кроме одной: он не должен отменять downstream и вообще как-то его трогать. previousFlow он отменяет, это пожалуйста, но downstream то зачем?
Пытаюсь сделать debounce по аналогии с rx, но что-то получается больно много кода, мб можно как-то иначе, покрасивее? https://gist.github.com/romansl/d871727a247a3ea2209bf74e5...
Это будет потокобезопасно?
И так работает? А как оно без public в переменную пишет? Рефлекшеном штоли?
Приведенный пример разве понятен? Я его понял только после нескольких минут чтения. А версия с корутинами понимается с первого взгляда.
Ну да, а что не так? Есть асинхронный блок, нужно асинхронно загрузить все страницы. Корутины тут лучше подходят, чем rx.
Ну так getBytes ведь выделит память под массив и скопирует в него содержимое строки. Где тут экономия?
Эх, понял что вторая версия работает не так, как надо, ладно вопрос остается открытым: как сделать проще?
Значит сегодня будет релиз котлина?)