Вам потрібно чекати 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
У СТАРИЙ JS ви повинні використовувати
setTimeout(YourFunctionName, Milliseconds);
або
setTimeout( () => { /*Your Code*/ }, Milliseconds );
Однак з кожним головним браузером, який підтримує async
/ await
він застарілий.
Оновлення: TypeScript 2.1 тут async/await
.
Тільки не забувайте, що вам потрібна Promise
реалізація під час компіляції в ES5, де Promise доступний не в оригіналі.