Size: a a a

2020 August 14

AO

Aleksandr Osipov in ☄️ effector
@ZeroBias а к тебя нет под рукой примера когда использование .getState даёт не то значение которое ожидается ?
источник

AO

Aleksandr Osipov in ☄️ effector
Просто вопросы про .getState возникают постоянно, и вот на неделе тоже был и я сам в результате попытки объяснить запутался и понял что не понимаю
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
ну вообще тут такой момент — имплементация эффектора по максимуму делает так, чтобы эти гонки были не видны, но они вызываются самой природой вычислений в сложной системе — помните, что в redux getState внутри редьюсера приводит к исключению? это сделано для того, чтобы ты не смог прочитать что-то, в то время как твой код это самое что-то обновляет
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
поэтому в простых кейсах getState всегда выдаёт ожидаемое значение, просто потому что эффектор над этим работает со своей стороны, а мы со своей — не абьюзим этот механизм, делая его исключительным случаем, а не повсеместной практикой
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
проще говоря, чтобы увидеть проблемы с getState нужно написать достаточно кода с его использованием: https://t.me/effector_ru/123789
источник

DS

Dmitriy Shuleshov in ☄️ effector
Нам нада треша и поломки🌚
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
например, если от одного и того же эвента триггерить обновление двух сторов, то начинает играть роль порядок
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Aleksandr Osipov
@ZeroBias а к тебя нет под рукой примера когда использование .getState даёт не то значение которое ожидается ?
источник

AO

Aleksandr Osipov in ☄️ effector
Спасибо! Тред сохранил
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
и из этой ситуации есть два выхода — либо следить за порядком, либо использовать инструменты для избавления от необходимости в соблюдении порядка
источник

AO

Aleksandr Osipov in ☄️ effector
В общем очень круто выходит что эффектор сопротивляется до последнего поломкам:) И .getState в основном кроме edge cases выдает ожидаемое значение и внутри .on можно события дергать и так далее
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
ага
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
например учитывается как кейс в котором чистая функция превращается в ватчер https://t.me/effector_ru/154098
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
так и ещё более эзотерические ситуации, которые, при этом, были  взяты из реальной практики (это тест на то, что history успеет обновиться)

https://github.com/zerobias/effector/blob/master/src/effector/__tests__/kernelEdgeCases.test.ts#L44
источник

NF

Nikita Fedorov in ☄️ effector
это решается создав стор зависимый от стора явно?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
так и ещё более эзотерические ситуации, которые, при этом, были  взяты из реальной практики (это тест на то, что history успеет обновиться)

https://github.com/zerobias/effector/blob/master/src/effector/__tests__/kernelEdgeCases.test.ts#L44
то есть, даже если ты воспользуешься getState в on, эффектор постарается сделать так, чтобы результат соответствовал ожиданиям. и это всё работает только при условии, что в среднем по приложению необходимость использования getState отсутствует, то есть это не чёрное и белое, это плавное уменьшение предсказуемости
источник

NF

Nikita Fedorov in ☄️ effector
Nikita Fedorov
это решается создав стор зависимый от стора явно?
типа как в этом примере
const balance = createStore(0)
const username = createStore('zerobias')

const greeting = combine(balance, username, (balance, username) => {
 return `Hello, ${username}. Your balance is ${balance}`
})
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Nikita Fedorov
это решается создав стор зависимый от стора явно?
тут несколько сложнее — заметь, что стору a необходимо значение из b только при срабатывании trigger, поэтому это кейс для sample
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
но и sample/guard и combine всегда ждут, пока используемые ими состояния стабилизируются, и лишь затем начинают работу
источник

DS

Dmitriy Shuleshov in ☄️ effector
https://share.effector.dev/hejQxkDO
Блин наконецто для меня хоть чуть прояснилось
источник