Devi aspettare TypeScript 2.0 con async/ awaitper 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 awaitsolo la asyncfunzione interna .
Se non è possibile ( supponiamo che si stia creando un'applicazione nodejs ), è sufficiente posizionare il codice in asyncfunzione 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' Promiseimplementazione quando esegui la compilazione su ES5, dove Promise non è disponibile in modo nativo.