Pular para o conteúdo

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çaComo parar
efeitoe.parar()
inscrição num observávelinscricao.cancelar()
sinal.observar(acao)chamar o cancelador que ele devolveu
históricoh.parar()
recursor.parar()
observável que acabouo.encerrar() — avisa ao_fim de cada inscrito