Parar o que não se usa
Efeito, inscrição, histórico e recurso seguram referências: sem parar, a tela fechada continua reagindo.
Um efeito registrado num sinal fica vivo enquanto o sinal viver. Se a tela que o criou fecha e ninguém o para, ele continua rodando a cada mudança — redesenhando o que não existe, e segurando na memória tudo o que o fechamento dele alcança.
dataforge
adopt Arcane.Reativo as R
contador := R.sinal(0)
execucoes := [0]
action mostrar():
execucoes[0] += 1
out $"contador: {contador.ler()}"
vigia := R.efeito(mostrar)
contador.escrever(1)
assert execucoes[0] is 2 // uma ao nascer, uma pela mudança
vigia.parar()
contador.escrever(2)
assert execucoes[0] is 2 // parado: não roda mais
assert contador.ouvintes() is 0 // e o sinal não o segura| Peça | Como parar |
|---|---|
| efeito | e.parar() |
| inscrição num observável | inscricao.cancelar() |
sinal.observar(acao) | chamar o cancelador que ele devolveu |
| histórico | h.parar() |
| recurso | r.parar() |
| observável que acabou | o.encerrar() — avisa ao_fim de cada inscrito |