Size: a a a

2020 June 03

R

Ruslan 🌀 in ☄️ effector
createStore<🦉> ⁣
а если там гораздо сложнее вычисления?
const $user = createStore<User | null>(null)
export const $isAuth = $user.map(checkAuth)

и в отдельный файл такие мапперы/геттеры/комбайны/редюсеры
источник

c⁣

createStore<🦉>... in ☄️ effector
Ruslan 🌀
const $user = createStore<User | null>(null)
export const $isAuth = $user.map(checkAuth)

и в отдельный файл такие мапперы/геттеры/комбайны/редюсеры
Три файла с логикой
источник

AP

Andrey Ponomarenko in ☄️ effector
🦜
Нашел прикольное приложение.

https://app.usememo.com/

Можно писать заметки и сохранять в гист
нельзя просто так взять, и не воткнуть цитату в доку/на сайт/статью)))
источник

R

Ruslan 🌀 in ☄️ effector
Andrey Ponomarenko
нельзя просто так взять, и не воткнуть цитату в доку/на сайт/статью)))
"Искусство афоризма заключается не столько в выражении какой-то оригинальной и глубокой идеи, сколько в умении в нескольких словах выразить доступную и полезную мысль."
Сэмюэл Джонсон
источник

🦜

🦜 in ☄️ effector
Andrey Ponomarenko
нельзя просто так взять, и не воткнуть цитату в доку/на сайт/статью)))
time is a side effect
источник

AP

Andrey Ponomarenko in ☄️ effector
🦜
time is a side effect
time is subjective
источник

AP

Andrey Ponomarenko in ☄️ effector
)))
источник

R

Ruslan 🌀 in ☄️ effector
-> side effect is subjective 🤔
источник

AP

Andrey Ponomarenko in ☄️ effector
источник

AM

Alexey Malinin in ☄️ effector
Всем привет. Возникла следующая задача: сделать бесконечный асинхронный цикл с таймаутом, который запрашивает данные с сервера. Особенность всего этого веселья в том, что требуется делать запросы пока стор не null и таймер требуется перезапускать при изменении данных в сторе. На rxjs (redux observable) все это добро выражается лаконично:
const makeColorsEpic = (action$: Observable<ReturnType<typeof successLoad>>) =>
 action$.pipe(
   ofType(succesLoad.type),
   switchMap(action => timer(0, 1000).pipe(
     map(() => makeColors(action.payload.nodes)),
     map(successColors),
     takeUntil(action$.pipe(
       ofType(clear.type)
     ))
   ))
 );


Как сделать так-же элегантно на effector?
источник

S

Sm•ok 😈✔️ in ☄️ effector
Может просто вотчить finally у эффекта и тип сеттаймаутом запускать его же
источник

🦜

🦜 in ☄️ effector
Alexey Malinin
Всем привет. Возникла следующая задача: сделать бесконечный асинхронный цикл с таймаутом, который запрашивает данные с сервера. Особенность всего этого веселья в том, что требуется делать запросы пока стор не null и таймер требуется перезапускать при изменении данных в сторе. На rxjs (redux observable) все это добро выражается лаконично:
const makeColorsEpic = (action$: Observable<ReturnType<typeof successLoad>>) =>
 action$.pipe(
   ofType(succesLoad.type),
   switchMap(action => timer(0, 1000).pipe(
     map(() => makeColors(action.payload.nodes)),
     map(successColors),
     takeUntil(action$.pipe(
       ofType(clear.type)
     ))
   ))
 );


Как сделать так-же элегантно на effector?
function unless(fx, condition) {
 return sample({
   source: fx,
   clock: guard(fx.finally, {
     filter: condition
   }),
   target: fx
 });
}
источник

AM

Alexey Malinin in ☄️ effector
Sm•ok 😈✔️
Может просто вотчить finally у эффекта и тип сеттаймаутом запускать его же
Тут не совсем понятно, как сбрасывать таймер
источник

🦜

🦜 in ☄️ effector
Alexey Malinin
Тут не совсем понятно, как сбрасывать таймер
function retry(fx, condition) {
 const left = createStore(10)
   .on(fx.finally, x => x - 1)

 sample({
   source: fx,
   clock: guard({
     source: fx.done.filter({ fn: condition }),
     filter: left.map(x => x > 0)
   }),
   target: fx
 });
}
источник

🦜

🦜 in ☄️ effector
как-то так
источник

S

Sm•ok 😈✔️ in ☄️ effector
🦜
function retry(fx, condition) {
 const left = createStore(10)
   .on(fx.finally, x => x - 1)

 sample({
   source: fx,
   clock: guard({
     source: fx.done.filter({ fn: condition }),
     filter: left.map(x => x > 0)
   }),
   target: fx
 });
}
А задержку между ними?
источник

S

Sm•ok 😈✔️ in ☄️ effector
В сэмпл вотчить ?
источник

🦜

🦜 in ☄️ effector
Sm•ok 😈✔️
А задержку между ними?
хз
источник

🦜

🦜 in ☄️ effector
в самом эффекте можно добавить задержку
источник

🦜

🦜 in ☄️ effector
и можно добавить проверку на inFlight
источник