Musisz poczekać na TypeScript 2.0 z obsługą async
/ await
dla ES5, ponieważ jest teraz obsługiwany tylko dla kompilacji TS do ES6.
Byłbyś w stanie stworzyć funkcję opóźnienia z async
:
function delay(ms: number) {
return new Promise( resolve => setTimeout(resolve, ms) );
}
I nazwij to
await delay(300);
Należy pamiętać, że można używać await
tylko async
funkcji wewnętrznej .
Jeśli nie możesz ( powiedzmy, że budujesz aplikację nodejs ), po prostu umieść swój kod w async
funkcji anonimowej . Oto przykład:
(async () => {
console.log('before delay')
await delay(1000);
console.log('after delay')
})();
Przykładowa aplikacja TS: https://github.com/v-andrew/ts-template
W STARYM JS musisz używać
setTimeout(YourFunctionName, Milliseconds);
lub
setTimeout( () => { }, Milliseconds );
Jednak każda większa przeglądarka obsługuje async
/ await
jest mniej przydatna.
Aktualizacja: TypeScript 2.1 jest tutaj z async/await
.
Po prostu nie zapominaj, że potrzebujesz Promise
implementacji podczas kompilacji do ES5, gdzie Promise nie jest natywnie dostępna.
PS
Musisz wyeksportować funkcję, jeśli chcesz jej używać poza oryginalnym plikiem.