Как стать автором
Обновить
3
0
Руслан Донченко @Akinyaev

Разработчик

Отправить сообщение

Эпическая сага про маленький custom hook для React (генераторы, sagas, rxjs) часть 3

Время на прочтение 9 мин
Количество просмотров 3.7K

Можно представить себе redux-saga (middleware) как администратора камер хранения. В камеры хранения можно класть эффекты на неопределенный срок и забирать их оттуда, когда будет нужно. Есть такой посыльный put, который приходит к диспетчеру и просит положить в камеру хранения сообщение (эффект). Есть такой посыльный take, который приходит к диспетчеру и просит ему выдать сообщение с определенным типом (эффект). Диспетчер, по просьбе take, смотрит все камеры хранения и если этих данных нет, то take остаётся с диспетчером и ждёт, пока put не принесёт данные с нужным для take типом. Существуют разные виды таких посыльных (takeEvery и т.д.).

Продолжить копать...
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 4

Эпическая сага про маленький custom hook для React (генераторы, sagas, rxjs) часть 2

Время на прочтение 6 мин
Количество просмотров 1.9K

Генераторы - это новый вид функций, который появился в ES6. О них написано немало статей и приведено множество теоретических примеров.

Представим, что генератор (функция в объявлении, которой есть *) - это некое электрическое устройство с дистанционным пультом управления. После создания и монтирования генератора (объявления функции) нужно его "крутануть" (выполнить эту функцию), чтобы он вращался на холостых оборотах и "запитал" пульт управления собой (при выполнении функции-генератора возвращает итератор). На этом пульте управления две кнопки: Пуск (вызвать первый раз метод next итератора) и Next (последующие вызовы метода next итератора). Далее с этим пультом управления можно носиться по всей электростанции (по нашему приложению) и когда понадобиться электрическая энергия (некие значения из функции-генератора) нажимать на пульте кнопку next (выполнять метод next() генератора). Генератор производит нужное количество электроэнергии (возвращает некое значение через yield) и опять переходит в холостой режим (функция-генератор ждёт следующего вызова next от итератора). Цикл продолжается, пока генератор может производить электричество (имеются операторы yield) или он не остановится (в функции-генераторе встретится return).

Копнуть ещё глубже
Всего голосов 1: ↑0 и ↓1 -1
Комментарии 9

Эпическая сага про маленький custom hook для React (генераторы, sagas, rxjs)

Время на прочтение 8 мин
Количество просмотров 3.3K

Стояла задача реализовать прелоадер с обратным отсчетом на реакте. Т.к. гуглить не умею и очень люблю лепить велосипеды (хороший двухместный получился из двух велосипедов "Украина"), то я был обречен глубоко копать на полях асинхреньщины. Забегу наперёд и скажу, что реализовал этот прелоадер с помощью генераторов, redux-saga, rxjs. Очень интересный опыт и хотелось бы поделиться, учитывая, что в процессе разбирательств, кроме статей, описывающих очевидные вещи, и обрывков сугубо специфической информации на stackoverflow, не находил.

Часть первая - создание кастомного хука прелоадера.

Копнуть глубже
Всего голосов 2: ↑1 и ↓1 0
Комментарии 4

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность