Size: a a a

Kotlin Community

2020 July 07

EP

Eugene P. in Kotlin Community
Обыскался, как сделать аналог Rx оператора amb на flow? Нашел, как сделать в корутинах (с помощью select). Но можно ли это адаптировать для flow как-то?
источник

AN

Alexander Nozik in Kotlin Community
Eugene P.
Обыскался, как сделать аналог Rx оператора amb на flow? Нашел, как сделать в корутинах (с помощью select). Но можно ли это адаптировать для flow как-то?
а что оно делает?
источник

EP

Eugene P. in Kotlin Community
Ну есть 2 или больше flow. Тот, кто первым запостит значение или завершится, тот и выиграл. Остальные должны быть принудительно завершены
источник

AN

Alexander Nozik in Kotlin Community
Eugene P.
Ну есть 2 или больше flow. Тот, кто первым запостит значение или завершится, тот и выиграл. Остальные должны быть принудительно завершены
А зачем это делать на Flow?
источник

EP

Eugene P. in Kotlin Community
нечто подобное делает withTimeoutOrNull
источник

EP

Eugene P. in Kotlin Community
Alexander Nozik
А зачем это делать на Flow?
В образовательных целях, и для того, чтобы была возможность полноценно мигрировать с RxJava
источник

AN

Alexander Nozik in Kotlin Community
Eugene P.
В образовательных целях, и для того, чтобы была возможность полноценно мигрировать с RxJava
Просто в корутинах для передачи единственного сообщения не надо использовать Flow вообще. Это закидон RX, от которого надо отказываться. Используйте Deferred + select
источник

AN

Alexander Nozik in Kotlin Community
источник

EP

Eugene P. in Kotlin Community
Alexander Nozik
Просто в корутинах для передачи единственного сообщения не надо использовать Flow вообще. Это закидон RX, от которого надо отказываться. Используйте Deferred + select
Спасибо, получается на данный момент не во всех аспектах так легко мигрировать с Rx на Flow, как мне казалось ранее
источник

AN

Alexander Nozik in Kotlin Community
Eugene P.
Спасибо, получается на данный момент не во всех аспектах так легко мигрировать с Rx на Flow, как мне казалось ранее
Да мигрировать-то легко. Просто есть какие-то вещи, которые в rx сделаны по-уродски. Их и мигрировать не стоит
источник

EP

Eugene P. in Kotlin Community
Alexander Nozik
Да мигрировать-то легко. Просто есть какие-то вещи, которые в rx сделаны по-уродски. Их и мигрировать не стоит
Звучит довольно категорично
источник

AN

Alexander Nozik in Kotlin Community
Eugene P.
Звучит довольно категорично
Ну как бы да. Если бы в RX все было бы хорошо, с него бы и мигрировать не стоило бы. Ставите конверторы на выходе и все
источник

EP

Eugene P. in Kotlin Community
Ну Rx не кроссплатформенная штука
источник

EP

Eugene P. in Kotlin Community
Преимущество flow именно кроссплатформенность
источник

EP

Eugene P. in Kotlin Community
ну и плюс мейнстрим сейчас, во всех вакансиях, почти, требуют
источник

AN

Alexander Nozik in Kotlin Community
Eugene P.
Преимущество flow именно кроссплатформенность
Преимущество - более консистентная модель
источник

А

Александр in Kotlin Community
Всем привет.
https://pastebin.com/hFA9CTDQ
поймал в Kotlin VerifyError "Bad type on operand stack" Win 7,10. Kotlin 1.3.72
есть подозрение, что нельзя проверять lateinit поле на другом объекте, пусть он и того же типа, но компилятор такое пропускает
источник

EP

Eugene P. in Kotlin Community
Alexander Nozik
Преимущество - более консистентная модель
У меня пока недостаточно опыта с flow, чтобы это оценить
источник

AN

Alexander Nozik in Kotlin Community
Александр
Всем привет.
https://pastebin.com/hFA9CTDQ
поймал в Kotlin VerifyError "Bad type on operand stack" Win 7,10. Kotlin 1.3.72
есть подозрение, что нельзя проверять lateinit поле на другом объекте, пусть он и того же типа, но компилятор такое пропускает
Ищите готовые баги, пишите новые
источник

AN

Alexander Nozik in Kotlin Community
Eugene P.
У меня пока недостаточно опыта с flow, чтобы это оценить
А я не про Flow. Flow - это только маленькая часть корутин
источник