Estoy desarrollando un sitio web en Angular 2 usando Typecript y me preguntaba si había una manera de implementar la thread.sleep(ms)
funcionalidad.
Mi caso de uso es redirigir a los usuarios después de enviar un formulario después de unos segundos, lo cual es muy fácil en html o javascript, pero no estoy seguro de cómo hacerlo en Typecript.
Muchas gracias,
angular
typescript
kha
fuente
fuente
Respuestas:
Usted tiene que esperar a que mecanografiado 2.0 con
async
/await
para el apoyo ES5 ya que ahora soporta sólo para TS a la compilación ES6.Podrías crear una función de retraso con
async
:Y llámalo
Tenga en cuenta que
await
solo puede usar laasync
función interna .Si no puede ( digamos que está creando una aplicación nodejs ), simplemente coloque su código en una
async
función anónima . Aquí hay un ejemplo:Aplicación de ejemplo de TS: https://github.com/v-andrew/ts-template
En OLD JS tienes que usar
o
Sin embargo, con todos los principales navegadores compatibles
async
/await
es obsoleto.Simplemente no olvide que necesita
Promise
implementación cuando compila a ES5, donde Promise no está disponible de forma nativa.fuente
await new Promise(resolve => setTimeout(resolve, 1000)).then(()=>console.log("fired"));
pero funcionóawait new Promise(resolve => setTimeout(()=>resolve(), 1000)).then(()=>console.log("fired"));
async
función. Agregué un ejemploEsto funciona: (gracias a los comentarios)
fuente
Por alguna razón, la respuesta aceptada anteriormente no funciona en Nuevas versiones de Angular (V6).
para eso usa esto ..
arriba funcionó para mí.
Uso:
O una forma más precisa
fuente
Con
RxJS
:x
es 0.Si le da un segundo argumento
period
atimer
, se emitirá un nuevo número cadaperiod
milisegundos (x = 0 y luego x = 1, x = 2, ...).Vea el documento oficial para más detalles.
fuente
Si está utilizando angular5 y superior, incluya el siguiente método en su archivo ts.
luego llame a este método delay () donde quiera.
p.ej:
Esto desaparecerá gruñendo el mensaje después de 3 segundos.
fuente
esto funciona mejor para mi
fuente
O en lugar de declarar una función, simplemente:
fuente