🦉
Size: a a a
🦉
l
T
l
const a = createStore(0)
const b = a.map(x => x + 1)
a → ab → b
a → ab ← b
. effect → effect.doneзависимым от стора
. \
. → effect.fail
. store → effect → effect.done
. \
. → effect.fail
l
l
l
l
l
l
const a = createStore(0)
const b = a.map(x => x + 1)
const fx = createEffect('fx', {
handler: x => console.log(x),
})
forward({
from: b,
to: fx,
})
l
l
fx
тут не принадлежит b
, потому что теперь это равноправные, независимые сущностиl
clearNode(b)
во втором случае удалится только нода b, а в первом случае как b, так и fx, fx.done и fx.fail, потому что они все находятся в одной и тоой же ветке графа принадлежностиl
l
l
clearNode(a)
у тебя b не удалится, потому что ты создал его явно, отдельно, тем самым показывая, что он тебе необходим сам по себеclearNode(a, {deep: true})
как обычно удалится всё, до чего сможет дотянуться, в том числе и b)l
a.map(x => x + 1)
— ab, каскадно удаляется эффект и его эвентыl
l
clearNode(b, {deep: true})
в обоих случаях уничтожит всё явно