Estou desenvolvendo um site no Angular 2 usando o Typecript e fiquei imaginando se havia uma maneira de implementar a thread.sleep(ms)
funcionalidade.
Meu caso de uso é redirecionar os usuários após o envio de um formulário após alguns segundos, o que é muito fácil em html ou javascript, mas não sei como fazê-lo no TypeScript.
Muito Obrigado,
angular
typescript
kha
fonte
fonte
Respostas:
Você precisa aguardar o suporte ao TypeScript 2.0 com
async
/await
para ES5, pois agora ele é compatível apenas com a compilação de TS para ES6.Você seria capaz de criar uma função de atraso com
async
:E chame
Observe que você pode usar
await
apenas aasync
função interna .Se você não puder ( digamos que esteja criando o aplicativo nodejs ), basta colocar seu código na
async
função anônima . Aqui está um exemplo:Exemplo de aplicativo TS: https://github.com/v-andrew/ts-template
No OLD JS você tem que usar
ou
No entanto, com todos os principais navegadores de suporte
async
/await
é obsoleto.Apenas não esqueça que você precisa de
Promise
implementação ao compilar no ES5, onde o Promise não está disponível nativamente.fonte
await new Promise(resolve => setTimeout(resolve, 1000)).then(()=>console.log("fired"));
, mas isso funcionouawait new Promise(resolve => setTimeout(()=>resolve(), 1000)).then(()=>console.log("fired"));
async
função. Eu adicionei exemploIsso funciona: (graças aos comentários)
fonte
Por algum motivo, a resposta aceita acima não funciona em Novas versões do Angular (V6).
para isso use isso ..
acima funcionou para mim.
Uso:
OU maneira mais precisa
fonte
Com
RxJS
:x
é 0.Se você der um segundo argumento
period
paratimer
, um novo número será emitido a cadaperiod
milissegundo (x = 0 e x = 1, x = 2, ...).Veja o documento oficial para mais detalhes.
fonte
Se você estiver usando angular5 e superior, inclua o método abaixo no seu arquivo ts.
em seguida, chame esse método delay () para onde desejar.
por exemplo:
Isso desaparecerá da mensagem após 3 segundos.
fonte
isso funciona melhor para mim
fonte
Ou, em vez de declarar uma função, simplesmente:
fonte