const reset = createEvent()
const increment = createEvent()
const waitFx = createEffect(() => {
return new Promise(resolve => setTimeout(resolve, 100))
})
const $counter = createStore([])
$counter.reset(reset)
$counter.on(increment, (list, name) => [...list, `manual ${name}`])
sample({
clock: increment,
target: waitFx,
})
$counter.on(waitFx.done, (list, {params: name}) => [...list, `fx done ${name}`])
$counter.watch(i => console.log('counter', i))
// counter []
increment('A')
// ["manual A"]
increment('B')
// ["manual A", "manual B"]
// ["manual A", "manual B", "fx done A"]
// ["manual A", "manual B", "fx done A", "fx done B"]