Sommeil typescript

Je développe un site Web dans Angular 2 en utilisant Typescript et je me demandais s’il y avait un moyen d’implémenter la fonctionnalité thread.sleep(ms) .

Mon cas d’utilisation est de redirect les utilisateurs après avoir soumis un formulaire après quelques secondes, ce qui est très facile en HTML ou JavaScript, mais je ne sais pas comment le faire dans Typescript.

Merci beaucoup,

Vous devez attendre TypeScript 2.0 avec async / await pour le support ES5 car il est désormais pris en charge uniquement pour la compilation TS à ES6.

Vous pourriez créer une fonction de délai:

 function delay(ms: number) { return new Promise( resolve => setTimeout(resolve, ms) ); } 

Et appelez ça

 await delay(300); 

En ce moment vous devez utiliser

 setTimeout(FunctionName, Milliseconds); 

ou

 setTimeout( () => { /*Your Code*/ }, Milliseconds ); 

Mise à jour: TypeScript 2.1 est ici avec async/await .

N’oubliez pas que vous avez besoin de l’implémentation de Promise lorsque vous comstackz vers ES5, où Promise n’est pas disponible en mode natif.

Cela fonctionne: (grâce aux commentaires)

 setTimeout(() => { this.router.navigate(['/']); }, 5000); 

Pour une raison quelconque, la réponse acceptée ci-dessus ne fonctionne pas dans les nouvelles versions de Angular (V6).

pour cela utiliser ..

 async function delay(ms: number) { await new Promise(resolve => setTimeout(()=>resolve(), 1000)).then(()=>console.log("fired")); } 

ci-dessus a travaillé pour moi.

Usage:

 this.delay(3000); 

OU de manière plus précise

 this.delay(3000).then(any=>{ //your task after delay. });