Size: a a a

2020 June 15

R

Rafael 🦠 in ☄️ effector
т.е по сути же там будут все эффекты проекта загнаны в один мерж или комбин
источник

BA

Bogdan Aleksandrovic... in ☄️ effector
всем привет, есть sample, есть ивент, что его тригерит, есть стор, как сюда можно гард прикрутить, что бы выполнить что то, если то, что в ивенте - совпадает с полем например в сторе
источник

🦜

🦜 in ☄️ effector
Rafael 🦠
т.е по сути же там будут все эффекты проекта загнаны в один мерж или комбин
значит они юзаются
источник

R

Rafael 🦠 in ☄️ effector
🦜
значит они юзаются
не все сразу
источник

🦜

🦜 in ☄️ effector
Rafael 🦠
не все сразу
ну залетит все в один модуль
источник

R

Rafael 🦠 in ☄️ effector
возможно стоит вести стор этих эффектов, куда в init подпихивать fx.pending
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
const showApiErrorToast = createEvent()
const apiErrorToastInterval = createEffect({
 handler: () => new Promise(
   rs => setTimeout(rs, 1000)
 )
})

guard({
 source: showApiErrorToast,
 filter: apiErrorToastInterval.pending.map(
   pending => !pending
 ),
 target: apiErrorToastInterval
})

const api = createDomain()

api.onCreateEffect(fx => {
 forward({
   from: fx.fail,
   to: showApiErrorToast
 })
})

import {api} from '../common/api'

const getUser = api.createEffect()
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
обрати внимание что interval эффект принадлежит тосту
источник

BA

Bogdan Aleksandrovic... in ☄️ effector
Bogdan Aleksandrovich
всем привет, есть sample, есть ивент, что его тригерит, есть стор, как сюда можно гард прикрутить, что бы выполнить что то, если то, что в ивенте - совпадает с полем например в сторе
можно прямо из sample вернуть false, если что то не так, его передать как фильтр в гард?
источник

R

Rafael 🦠 in ☄️ effector
🚀🔬 🚀🔬🚀🔬
const showApiErrorToast = createEvent()
const apiErrorToastInterval = createEffect({
 handler: () => new Promise(
   rs => setTimeout(rs, 1000)
 )
})

guard({
 source: showApiErrorToast,
 filter: apiErrorToastInterval.pending.map(
   pending => !pending
 ),
 target: apiErrorToastInterval
})

const api = createDomain()

api.onCreateEffect(fx => {
 forward({
   from: fx.fail,
   to: showApiErrorToast
 })
})

import {api} from '../common/api'

const getUser = api.createEffect()
👍 во, кажется то что нужно, спасибо
источник

🦜

🦜 in ☄️ effector
Bogdan Aleksandrovich
можно прямо из sample вернуть false, если что то не так, его передать как фильтр в гард?
guard({source: sample(store,clock)})
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Bogdan Aleksandrovich
всем привет, есть sample, есть ивент, что его тригерит, есть стор, как сюда можно гард прикрутить, что бы выполнить что то, если то, что в ивенте - совпадает с полем например в сторе
guard({
 source: event,
 filter: sample({
   source: store,
   clock: event,
   fn: (val, e) => e === val.foo
 })
})
источник

BA

Bogdan Aleksandrovic... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
guard({
 source: event,
 filter: sample({
   source: store,
   clock: event,
   fn: (val, e) => e === val.foo
 })
})
ивент в filter и clock - может быть один и тот же?
источник

🚀🚀

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

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
причём сэмпл сам так делает если не указан никакой clock https://github.com/zerobias/effector/blob/master/src/effector/sample.js#L44
источник

BA

Bogdan Aleksandrovic... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
guard({
 source: event,
 filter: sample({
   source: store,
   clock: event,
   fn: (val, e) => e === val.foo
 })
})
а параметры event таким образов в новый ивент гарда попадают?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Bogdan Aleksandrovich
а параметры event таким образов в новый ивент гарда попадают?
ага

всё что происходит в фильтре остаётся в фильтре)
источник

BA

Bogdan Aleksandrovic... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
ага

всё что происходит в фильтре остаётся в фильтре)
а гард типы видит как раз фильтра, ему напрямую указать то, что он вернет?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
не очень понял вопрос 🤔
источник

BA

Bogdan Aleksandrovic... in ☄️ effector
хотя forward({ from: event, to: event1 }) в event1 - попадают параметры из event
источник