Quero solicitar uma ajuda para uma implementação front-end em angular 8 conforme a descrição abaixo:
Preciso implementar a um modal a ser aberto para o usuário assim que ele faz o login. Nesse modal ele poderá aceitar ou não os termos da aplicação. Até aqui td certo. Porém se ele não aceitar os termos preciso criar um mecanismo tipo um timmer para contar 5 minutos e subir o modal novamente. Entendo que esse mecanisco deveria ser assincrono e estar em um módulo principal (main) do angular porque o usuário decorrido os 5 min pode estar navegando em qualquer tela da aplicação.
Você pode utilizar um setInterval para chamar a função a cada 5 minutos, ou um setTimeout para só chamar uma única vez:
setInterval(() => console.log('Chama a função de 5 em 5 minutos...'), 300000)
setTimeout(() => console.log('Chama a função em 5 minutos...'), 300000)
P
Pereira1
Opa Lucas muito obrigado pelo retorno. Mais uma dúvida é que caso o usuário não aceite de primeira os termos de utilização ele continuará navegando por qualquer tela da aplicação, usando os roteamentos para as respectivas urls. Dessa forma essa função pode ser implementada em um módulo centralizado de forma que em qualquer ponto que ele esteja da aplicação eu por meio desse modulo centralizado chamo a funcão novamente ao finalizar o timmer ?
L
Solucao aceita
lucashpmelo
Exatamente, criei um novo componente para ficar fazendo essa validação e importe ele no seu componente principal. Assim de qualquer lugar da sua aplicação ele estará sempre rodando.
P
Pereira11 like
Maravilha então vou codar aqui e tentar por em prática. obrigado. Abraço.
L
Lucas_Camara
Nesse caso, eu utilizaria o rxjs por ser algo padrao do angular:
import{interval}from'rxjs';constsubscription=interval(3000).subscribe(()=>{console.log('Chama a função em 5 minutos...');});//comasubscription,vcconseguecancelarointerval//subscription.unsubscribe()