
kana
02.11.2017
22:05:56

andretshurotshka?❄️кде
02.11.2017
22:06:34
вуе что ли
хотя не

kana
02.11.2017
22:06:53
без всяких непонятных функций, которые делают какой-то эффект (actions.begin чет там)

Google

Andrew
02.11.2017
22:07:10
Чем санк плох ?

Alex
02.11.2017
22:09:28

kana
02.11.2017
22:09:55

Dmitry
02.11.2017
22:10:04

kana
02.11.2017
22:10:07
а про begin/createTransaction

Dmitry
02.11.2017
22:10:43
только бегин еще

Alex
02.11.2017
22:10:54

kana
02.11.2017
22:11:34
так так и нет эксепшенов

Alex
02.11.2017
22:11:35
Т.е.мне нравится твой вариант но только с вызовом кормит и реверт через then

Dmitry
02.11.2017
22:12:16
ну так симпатичней

kana
02.11.2017
22:12:23
ну, санк сам по себе выглядит костыльно, это тупо пробрасывание апи стора в экшоны, на уровне с манкипатчингом.
Но пофиг на это, саги сами по себе намного гибче и больше возможностей

Alex
02.11.2017
22:12:25
Да

Google

Alex
02.11.2017
22:13:01
Кстати а смысл возвращаться пробинженый промис? Разве только функции комит и реверт не возвращают что-то?

Dmitry
02.11.2017
22:14:52
но можно описывать такую логику
как higher order thunk
hot )

kana
02.11.2017
22:15:19
неееет
это тоже неверный термин, как и hoc

Alex
02.11.2017
22:16:47
Выглядит немного костыльно на самом деле

kana
02.11.2017
22:16:49
(...args) сделай

Dmitry
02.11.2017
22:17:13
ну я для санков юзаю ток 1 аргумент)
всегда, но суть в самом подходе
Есть ли смысл делать для остальных фич что-то в таком же духе как для транзакций в примере выше ?
типа отмены реквестов

kana
02.11.2017
22:18:31
но у меня вопрос, как это работает?
он же не может запоминать весь стор
ведь там между запросом и ответом еще что-то может происходить

Alex
02.11.2017
22:19:10
Так должно быть?

kana
02.11.2017
22:19:38
да это же тупо пример, опечатка

Google

Dmitry
02.11.2017
22:19:46
вот если быть точным

Alex
02.11.2017
22:20:11
Может я не шарю)

Dmitry
02.11.2017
22:20:17
в редюсере есть 2 проперти, history, current

Alex
02.11.2017
22:20:26
Вообще лучше сделать мидлвар тогда уж

Dmitry
02.11.2017
22:20:37
когда вызываем начать транзакцию в хистори пушится обьект с текущим стейтом редюсера

kana
02.11.2017
22:20:40

Alex
02.11.2017
22:20:51
Помимо его

Dmitry
02.11.2017
22:21:00
когда ревертим с хистори берется этот обьект

kana
02.11.2017
22:21:38
типа для каждого запроса в хистори уникальный идентификатор, да?

Alex
02.11.2017
22:21:40
А в чем прикол?

Dmitry
02.11.2017
22:22:14

Alex
02.11.2017
22:23:43

Dmitry
02.11.2017
22:24:49
ты делаешь наперед апдейт, т.е begin показываешь какой-то стейт, а потом ждешь респонс

Alex
02.11.2017
22:25:21
Понял

Dmitry
02.11.2017
22:25:21
и если пришел еррор, то ты ревертишься к предыдущему стейту

Alex
02.11.2017
22:26:37
Я обычно делал это в изолированном виде, не трогая основные данные
Тип боксы со статусом которые меняют данные только пока существуют или по статусу

Google

Dmitry
02.11.2017
22:28:02
крч придумать удобный апи со всеми кейсами - это сложно
саги это вообще
http://www.usingcsp.com/cspbook.pdf
отсюда черапали идеи

Alex
02.11.2017
22:28:47
А конкретно какой пример у данного кейса

kana
02.11.2017
22:29:17
да генераторы сами по себе создавались для того, что саги и делают
корутины

Dmitry
02.11.2017
22:30:07
без лишнего бойлерплейта

Alex
02.11.2017
22:30:23
Ну какие данные фигурируют
Тип сообщение в чат или ещё что

Dmitry
02.11.2017
22:30:46
тудушка, сообщение в чат, загружающаяся картинка

kana
02.11.2017
22:30:48
да в принципе любое асинк действие

Dmitry
02.11.2017
22:31:21
любое действие результат которого хочешь показать наперед

kana
02.11.2017
22:31:33
какой экшон вызывает begin? Откуда он берет данные?
а, current
но все равно, какой экшон?

Dmitry
02.11.2017
22:32:26

Alex
02.11.2017
22:32:32
Лучше сделать отдельный стейт, вот к примеру с редактированием объекта в большом списке твой вариант будет хорошо работать, а для сообщения в чате лучше сделать отдельный блок в котором отображается сообщение до того как будет получено с сервера

Dmitry
02.11.2017
22:33:04

Google

kana
02.11.2017
22:33:06
короче, вот контркейс

Dmitry
02.11.2017
22:33:13
хотя это можно стандартализировать

kana
02.11.2017
22:33:20
отправляем второе сообщение, пока не отправилось первое
хобана

Alex
02.11.2017
22:33:23
Ну тут дело в производительности скорее

Dmitry
02.11.2017
22:33:32
у меня у каждого санка в мету requestId)
в контексте
законтрил ?

kana
02.11.2017
22:34:12
то есть я вот спрашивал, это для каждого запроса уникальный идентификатор?

Dmitry
02.11.2017
22:35:03
который айдишник генерить с аргументов

kana
02.11.2017
22:35:19
а если мы начинаем один, начинаем второй, второй завершается и меняет стор на успешный, а первый падает и меняет стор на тот, что был изначально

Alex
02.11.2017
22:35:48
Боксы помогут
В этом плане, доп стейт для асунк методов будет работать хорошо
Вообще я думаю это единственный правильный вариант

Dmitry
02.11.2017
22:37:05
или что-то с редюсерами мутить или еще что-то придумывать

Alex
02.11.2017
22:38:04
Тип если есть стор сообщений, то у каждого сообщения может быть на пример дополнительный стейт который ещё не одобрен но отображается приориьетно

kana
02.11.2017
22:38:06
нужно хранить не данные, а миграции
в нашем случае это функция-ролбек