Warning: mkdir(): No space left on device in /var/www/tgoop/post.php on line 37

Warning: file_put_contents(aCache/aDaily/post/kotlin_adept/--): Failed to open stream: No such file or directory in /var/www/tgoop/post.php on line 50
Kotlin Adept Notes@kotlin_adept P.48
KOTLIN_ADEPT Telegram 48
Корутинные рецепты

Возможно вы уже видели набор полезных рецептов для Kotlin Coroutines от Marcin Moskala. Это набор утилитарных функций, которые помогают в повседневной разработке, позволяют значительно сократить код и сделать его лаконичнее.

🔹Функция mapAsync позволяет элегантно сделать загрузку данных параллельной при работе с коллекциями
🔹Функции retryWhen и retryBackoff позволяют сделать повторные запросы в случае ошибки, а вторая функция позволяет сделать ожидание экспоненциальным, чтобы увеличить вероятность успешного повтора
🔹Функция raceOf позволяет запустить несколько suspend функций параллельно и получить результат той, что завершится быстрее остальных. На моей практике, это единственная функция, которая использует механизм select в корутинах.
🔹Функция suspendLazy позволяет создать ленивое suspending свойство, которое не будет блочить поток, обращающийся к этому свойству
🔹Ну и различные SharedDataSource и StateDataSource, которые нужны, чтобы пошарить один экземпляр Flow для нескольких подписчиков по переданному ключу.

📎Помимо этих рецептов, также есть либа с полезными операторами для Flow, взятыми из Rx.

💡 Еще к этому списку можно было бы докинуть runCatchingCancellable, который не съедает CancellationException или функцию, противоположную raceOf, которая выберет самый медленный источник, ведь иногда нам нужно, наоборот, подзамедлить UI, чтобы он не мелькал и пользователь понимал, что происходит на экране.

Если вы знаете еще полезные экстеншены для корутин, делитесь ими в комментариях 💬

#Coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29



tgoop.com/kotlin_adept/48
Create:
Last Update:

Корутинные рецепты

Возможно вы уже видели набор полезных рецептов для Kotlin Coroutines от Marcin Moskala. Это набор утилитарных функций, которые помогают в повседневной разработке, позволяют значительно сократить код и сделать его лаконичнее.

🔹Функция mapAsync позволяет элегантно сделать загрузку данных параллельной при работе с коллекциями
🔹Функции retryWhen и retryBackoff позволяют сделать повторные запросы в случае ошибки, а вторая функция позволяет сделать ожидание экспоненциальным, чтобы увеличить вероятность успешного повтора
🔹Функция raceOf позволяет запустить несколько suspend функций параллельно и получить результат той, что завершится быстрее остальных. На моей практике, это единственная функция, которая использует механизм select в корутинах.
🔹Функция suspendLazy позволяет создать ленивое suspending свойство, которое не будет блочить поток, обращающийся к этому свойству
🔹Ну и различные SharedDataSource и StateDataSource, которые нужны, чтобы пошарить один экземпляр Flow для нескольких подписчиков по переданному ключу.

📎Помимо этих рецептов, также есть либа с полезными операторами для Flow, взятыми из Rx.

💡 Еще к этому списку можно было бы докинуть runCatchingCancellable, который не съедает CancellationException или функцию, противоположную raceOf, которая выберет самый медленный источник, ведь иногда нам нужно, наоборот, подзамедлить UI, чтобы он не мелькал и пользователь понимал, что происходит на экране.

Если вы знаете еще полезные экстеншены для корутин, делитесь ими в комментариях 💬

#Coroutines

BY Kotlin Adept Notes


Share with your friend now:
tgoop.com/kotlin_adept/48

View MORE
Open in Telegram


Telegram News

Date: |

Hashtags How to create a business channel on Telegram? (Tutorial) Earlier, crypto enthusiasts had created a self-described “meme app” dubbed “gm” app wherein users would greet each other with “gm” or “good morning” messages. However, in September 2021, the gm app was down after a hacker reportedly gained access to the user data. “Hey degen, are you stressed? Just let it all out,” he wrote, along with a link to join the group. To delete a channel with over 1,000 subscribers, you need to contact user support
from us


Telegram Kotlin Adept Notes
FROM American