Devi aspettare TypeScript 2.0 con async
/ await
per il supporto ES5 poiché ora è supportato solo per la compilazione da TS a ES6.
Saresti in grado di creare una funzione di ritardo con async
:
function delay(ms: number) {
return new Promise( resolve => setTimeout(resolve, ms) );
}
E chiamalo
await delay(300);
Si noti che è possibile utilizzare await
solo la async
funzione interna .
Se non è possibile ( supponiamo che si stia creando un'applicazione nodejs ), è sufficiente posizionare il codice in async
funzione anonima . Ecco un esempio:
(async () => {
// Do something before delay
console.log('before delay')
await delay(1000);
// Do something after
console.log('after delay')
})();
Esempio di applicazione TS: https://github.com/v-andrew/ts-template
In OLD JS devi usare
setTimeout(YourFunctionName, Milliseconds);
o
setTimeout( () => { /*Your Code*/ }, Milliseconds );
Tuttavia, con tutti i principali browser supportati async
/ await
è obsoleto.
Aggiornamento: TypeScript 2.1 è qui con async/await
.
Non dimenticare che devi eseguire l' Promise
implementazione quando esegui la compilazione su ES5, dove Promise non è disponibile in modo nativo.