@react_js

Страница 1477 из 5115
Дмитрий
16.06.2017
15:22:00
вот это ты сейчас лихо код сократил, прям намного проще стало)

Кирилл
16.06.2017
15:22:01
там же 2 способа создания редьюсера. Есть через фабрику и он не понимает массив

Дмитрий
16.06.2017
15:22:02
(нет)

Adam
16.06.2017
15:22:19
Недавно задавал вопрос о сагах здесь и говорят, что я не по адресу обратился )

Google
Кирилл
16.06.2017
15:22:20
ну не пришлось бы выносить код обработчика

Stepan
16.06.2017
15:22:21
А два подряд евейта не лучше оборачивать в Promise.all?

andretshurotshka?❄️кде
16.06.2017
15:22:42
ну напиши хелпер какой-нибудь)

Дмитрий
16.06.2017
15:23:02
А два подряд евейта не лучше оборачивать в Promise.all?
Ты не можешь одновременно убить васю и прятать тело, потому что живой вася будет слегка недоволен

Pavel
16.06.2017
15:23:07
async (dispatch) => { await killVyasya() await hideBody() dispatch(SHEF_VSYO_GOTOVO()) }
Ну у меня так и есть вроде бы. Но что делать, если это действие не меняет state? Нужен ли тогда вообще редуктор?

Adam
16.06.2017
15:23:15
Promise.all это не подряд

andretshurotshka?❄️кде
16.06.2017
15:24:03
ну не пришлось бы выносить код обработчика
const r = createReducer({ [ACTION3]: funcName, ...on([ACTION, ACTION2], () => {}) }) правда дичь получается

Дмитрий
16.06.2017
15:24:16
Кирилл
16.06.2017
15:25:27
просто часто приходится ловить "любое конечное состояние (success/false)" и выполнять одинаковые манипуляции

типа загрузку убирать

Google
Pavel
16.06.2017
15:28:45
async (dispatch) => { await killVyasya() await hideBody() dispatch(SHEF_VSYO_GOTOVO()) }
Или ты тут имеешь в виду, что dispatch внутри действия должен быть только один?

Дмитрий
16.06.2017
15:29:49
Каждый диспатч просто должен быть обоснован. В частности, если между диспатчами находится асинхронное действие

Повторюсь, если тебе нужно вызывать два экшна подряд, то это значит, что стейт проходит через неконсистентное состояние со всеми вытекающими

Дмитрий
16.06.2017
15:36:23
Потому что если ты диспатчишь отдельно, то между экшнами твоё состояние не соответствует ни начальному, ни конечному. И хорошо, если приложение с этим справляется нормально

А то можно так и отрицательный баланс получить и много чего ещё, описываемое термином "неконсистентность")

Adam
16.06.2017
15:38:23
Народ, а касательно вопроса - Если есть thunk и await, то зачем саги? - На чем все таки остановились? Разве thunk и await покрывают все те же кейсы, что и саги?

Дмитрий
16.06.2017
15:38:36
а как ты делаешь лоадеры данных?
Ну диспатч начала загрузки и конца загрузки разделён асинхронным вызовом, например

Сергей
16.06.2017
15:38:56
George
16.06.2017
15:39:24
Async await работает на генераторах на самом деле. Это больше синтаксический сахар а не отдельный механизм

Pavel
16.06.2017
15:39:32
Народ, а касательно вопроса - Если есть thunk и await, то зачем саги? - На чем все таки остановились? Разве thunk и await покрывают все те же кейсы, что и саги?
http://redux.js.org/docs/advanced/AsyncActions.html Thunk middleware isn't the only way to orchestrate asynchronous actions in Redux: You can use redux-promise or redux-promise-middleware to dispatch Promises instead of functions. You can use redux-observable to dispatch Observables. You can use the redux-saga middleware to build more complex asynchronous actions. You can use the redux-pack middleware to dispatch promise-based asynchronous actions. You can even write a custom middleware to describe calls to your API, like the real world example does.

Дмитрий
16.06.2017
15:39:41
Народ, а касательно вопроса - Если есть thunk и await, то зачем саги? - На чем все таки остановились? Разве thunk и await покрывают все те же кейсы, что и саги?
Саги это костыль когда не было await. Сейчас их обвесили разными рюшками, но костылем это быть не перестало. Никто и не понимает собственно

Adam
16.06.2017
15:39:43
В доке написано что да
Ну а приколы с тестированием, такого ж не замутишь thunk-ами c await-ом

Дмитрий
16.06.2017
15:40:40
Async await работает на генераторах на самом деле. Это больше синтаксический сахар а не отдельный механизм
Бессмысленное выссказывание в языке, в котором даже классы — это сахар и реально независимыми вещами являются только какие-нибудь прокси

Adam
16.06.2017
15:40:46
Async await работает на генераторах на самом деле. Это больше синтаксический сахар а не отдельный механизм
Это да. Но сахар то над промисами. То есть то, что он работает на генераторах (по крайней мере в транспайлерах) это всего лишь детали реализации

Дмитрий
16.06.2017
15:40:57
Саги:

Google
Pavel
16.06.2017
15:42:10
И зачем удалили вопрос?

Дмитрий
16.06.2017
15:42:11
Каждый раз раз как ты переводишь устоявшиеся термины, в мире плачет один котёнок

Дмитрий
16.06.2017
15:42:35
))

Adam
16.06.2017
15:43:00
Сергей
16.06.2017
15:43:17
@Oharr перепиши вопрос с нормальными терминами, пожалуйста

andretshurotshka?❄️кде
16.06.2017
15:43:24
генераторы нужны чтобы генерировать

Adam
16.06.2017
15:43:43
Я не на то сообщение ответил, но адресовал правильно

andretshurotshka?❄️кде
16.06.2017
15:44:01
и как pull collections наверно (@ZeroBias поправь если че)

Сергей
16.06.2017
15:44:22
мне понравилась идея асинхронных генераторов

Pavel
16.06.2017
15:44:23
@Oharr перепиши вопрос с нормальными терминами, пожалуйста
Снобы могут не отвечать при желании, если им термины не нравятся

Дмитрий
16.06.2017
15:44:32
На самом деле генераторы офигенны и я не понимаю, почему практически никто не использует их по назначению

Adam
16.06.2017
15:44:37
Польза имеется ввиду в связке с ридаксом

Дмитрий
16.06.2017
15:44:45
Это путь к созданию нормальных итерируемых структур

Adam
16.06.2017
15:47:09
Я ищу способ добиться всего того, что дают саги, но без генераторов. Вот, собственно, почему я так озабочен этими вопросами. Я уже давно сижу на простых мидлах типо фанков и от этой простоты тоже не хочется отказываться

Дмитрий
16.06.2017
15:47:24
вот именно как "генерировать" не нашел кейса
class List { head: any tail: List * [Symbol.iterator]() { yield this.head yield* this.tail // (!!) } } const list = new List [...list]

здорово, правда?))

Сергей
16.06.2017
15:49:05
не совсем понял в чем польза

Дмитрий
16.06.2017
15:49:15
У тебя итерируемый объект

Google
Дмитрий
16.06.2017
15:49:23
Через for of например

Сергей
16.06.2017
15:49:40
это я понял вопрос скорее в том, какой смысл head, tail?

Дмитрий
16.06.2017
15:49:46
Никакого

George
16.06.2017
15:49:46
Список в 3 строчки на js

Он спрашивает про преимущества

Дмитрий
16.06.2017
15:50:16
Только хотел написать, что отдельный приз "зануда 2017" первому кто скажет почему код не валиден

Admin
ERROR: S client not available

Adam
16.06.2017
15:50:26
ну с асинхронными генераторами ведь очевидно в чем польза ) а подобные примеры с мдн на самом деле наталкивают на мысли - мол нахера это

Дмитрий
16.06.2017
15:50:43
Самое интересное, что все наоборот

Сергей
16.06.2017
15:51:00
Дмитрий
16.06.2017
15:51:20
Вот как раз про них такое резонно задавать (нет, я знаю зачем они)

Сергей
16.06.2017
15:51:21
Список в 3 строчки на js
понятно что список короче я думал здесь что-то более глубокое)

Дмитрий
16.06.2017
15:51:26
Блин

Аллё

Дмитрий
16.06.2017
15:51:35
Вы не видите, что это вообще не список?

Adam
16.06.2017
15:51:38
не в обиду, конечно, насчет примеров с мдн, это я так, к слову

Дмитрий
16.06.2017
15:51:39
А рекурсивная структура

Сергей
16.06.2017
15:51:57
бля сбили с толку

Google
Дмитрий
16.06.2017
15:51:59
Произвольная

Сергей
16.06.2017
15:52:05
то есть тупо пример возможностей?

Дмитрий
16.06.2017
15:52:05
Которая итерируется через for of

Оторвитесь уже от букв)

George
16.06.2017
15:52:15
Ну типа райт лесс ду мор

Andrey
16.06.2017
15:52:33
Оторвитесь уже от букв)
Да, скажи лучше: такой синтаксис уже приняли?)

Дмитрий
16.06.2017
15:52:42
Сто лет как

Этому синтаксису столько же времени сколько генераторам

Вот лучше бы методы-генераторы так форсили, чем эти ваши саги

Чесслово

Сергей
16.06.2017
15:54:00
Вот лучше бы методы-генераторы так форсили, чем эти ваши саги
а чем это отличается от, того что ты написал?

Дмитрий
16.06.2017
15:54:06
Ох

Ясно

Сергей
16.06.2017
15:54:10
class Name { *foo() {} }

не?

Сергей
16.06.2017
15:54:54
ты имеешь ввиду в массах)

Дмитрий
16.06.2017
15:55:27
нет, серьезно ничем не отличается

Просто в жс декларировано, что вычисляемый метод с именем Symbol.iterator делает итерируемую структурую

Саму по себе

Страница 1477 из 5115