Current effect behavior
const fx = createEffect({
handler(params) {
console.log(params)
},
})
fx('arg')
// => arg
const foo = createStore(1)
const fx = createEffect({
store: {foo},
handler(params, {store}) {
console.log(params, store)
},
})
fx('arg')
// => arg, {foo: 1}
const users = createStore([{
nick: 'jack',
email: '[email protected]',
}])
const userID = createStore(0)
const fx = createEffect({
store: {id: userID, users},
handler(message, {store: {id, users}}) {
const user = users[id]
console.log('[', user.nick, ']: ', message)
},
})
await fx('hi all!')
// => [jack]: hi all!
/* lets use real request */
fx.use(async (message, {store: {id, users}}) => {
const user = users[id]
const req = await fetch('/our/backend', {
method: 'POST',
body: JSON.stringify({user, message}),
})
await req.json()
})
await fx('hi all!')
// ~> request to backend