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.
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 ?
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.
Nesse caso, eu utilizaria o rxjs por ser algo padrao do angular:
import { interval } from 'rxjs';
const subscription = interval(3000).subscribe(() => {
console.log('Chama a função em 5 minutos...');
});
// com a subscription, vc consegue cancelar o interval
// subscription.unsubscribe()