Size: a a a

Clojure — русскоговорящее сообщество

2020 August 31

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Anton Garansky
Раз уж пошел такой разговор спрошу.
Есть в приложении страница и чтобы ее отобразить нужно много чего подготовить, сходить на сервер за данными для фильтра, для графика и прочее. Возможно даже сделать это нужно в определенном порядке.
И вот пользователь нажимает на пункт меню чтобы посмотреть эту страницу, это срабатывает событие ::show-page, оно запускает цепочку других событий. Можно ли отменить эту цепочку если пользователь передумал, нарпимер не дождался и пошел на другую страницу?
А в вашем случае цепочка событий это что?
источник

AG

Anton Garansky in Clojure — русскоговорящее сообщество
"сходить на сервер за данными для фильтра, для графика и прочее."
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Anton Garansky
"сходить на сервер за данными для фильтра, для графика и прочее."
Я имею ввиду в реализации)
источник

A

Artem in Clojure — русскоговорящее сообщество
Anton Garansky
"сходить на сервер за данными для фильтра, для графика и прочее."
можно заюзать bluebird промисы и их отменять
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Artem
можно заюзать bluebird промисы и их отменять
+
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Ну или core.async если уж на то пошло?
источник

AG

Anton Garansky in Clojure — русскоговорящее сообщество
Tim Plotnikov
Я имею ввиду в реализации)
в реализации это обычные re-frame events просто в :async-flow
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Anton Garansky
в реализации это обычные re-frame events просто в :async-flow
А… Я не использовал async-flow, но суда по документации оно пуляет re-frame ивенты по очереди?
Если это так и в самой библиотеке нет возможности остановить «флоу» то тут, как мне кажется, 2 варианта.

Первый (костыльный) это в каждой функции, которая выполняется в цепочке, проверять какой-нибудь флаг что юзер отменил запрос. Если этот флаг true, то не выполнять функцию.

Второй вариант это использовать промисы/Rx/core.async и сделать так, чтобы ваша цепочка загрузила сама все данные и потом в конце пульнула один единственный эффект со всеми предзагруженными данными. В этом случае вы можете отменить и промис и rx-chain и закрыть core.async-канал
источник

RN

Ryzhikov Nikolay in Clojure — русскоговорящее сообщество
Дай всем запросам id или tag - и на событие отмены - отмени все запросы
источник

RN

Ryzhikov Nikolay in Clojure — русскоговорящее сообщество
напиши свой xhr effect - для полного контроля
источник

RN

Ryzhikov Nikolay in Clojure — русскоговорящее сообщество
core.async stateful зло
источник

AG

Anton Garansky in Clojure — русскоговорящее сообщество
Ryzhikov Nikolay
Дай всем запросам id или tag - и на событие отмены - отмени все запросы
кстати думл о таком, чтобы если одно событие диспачит другое чтобы оно передавала ему свой tag
и так по цепочке
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Коллеги, а расскажите про Graph QL чуть-чуть
Интересно:
– Какие у вас любимые статьи по нему?
– Какие графы можно в нём смоделировать и опрашивать?
– Какие границы у него?
– Есть ли там концепт полноценных рёбер с собственными атрибутами? (e.g. чтобы между двумя вершинами могли быть рёбра разного типа)
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
есть мнение, что graphql не совсем про графы
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Иван Федоров
Коллеги, а расскажите про Graph QL чуть-чуть
Интересно:
– Какие у вас любимые статьи по нему?
– Какие графы можно в нём смоделировать и опрашивать?
– Какие границы у него?
– Есть ли там концепт полноценных рёбер с собственными атрибутами? (e.g. чтобы между двумя вершинами могли быть рёбра разного типа)
оно про то, как строить небольшие иерархические запросы в базу данных,
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
к графам имеет очень опосредованное отношение
источник

ИФ

Иван Федоров... in Clojure — русскоговорящее сообщество
Maxim Penzin
к графам имеет очень опосредованное отношение
а что есть из хороших пейперов про запросы по графам?
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Maxim Penzin
оно про то, как строить небольшие иерархические запросы в базу данных,
Мне даже кажется оно про то, чтобы снять часть проблемы дизайна апи.
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
Мне даже кажется оно про то, чтобы снять часть проблемы дизайна апи.
перенести их внутрь  :)
источник

A

Alexander in Clojure — русскоговорящее сообщество
Maxim Penzin
перенести их внутрь  :)
Внутрь клиента, это важно
источник