Вам нужно дождаться TypeScript 2.0 с async
/ await
для поддержки ES5, поскольку теперь он поддерживается только для компиляции TS в ES6.
Вы можете создать функцию задержки с помощью async
:
function delay(ms: number) {
return new Promise( resolve => setTimeout(resolve, ms) );
}
И назови это
await delay(300);
Обратите внимание, что вы можете использовать await
только внутреннюю async
функцию.
Если вы не можете ( скажем, вы создаете приложение nodejs ), просто поместите свой код в анонимную async
функцию. Вот пример:
(async () => {
// Do something before delay
console.log('before delay')
await delay(1000);
// Do something after
console.log('after delay')
})();
Пример приложения TS: https://github.com/v-andrew/ts-template
В OLD JS вы должны использовать
setTimeout(YourFunctionName, Milliseconds);
или
setTimeout( () => { /*Your Code*/ }, Milliseconds );
Однако с каждым из основных браузеров поддержки async
/ await
она устарела.
Обновление: TypeScript 2.1 здесь с async/await
.
Только не забывайте, что вам нужна Promise
реализация при компиляции в ES5, где Promise изначально недоступен.