Bạn phải đợi TypeScript 2.0 hỗ trợ async/ awaitcho ES5 vì giờ đây nó chỉ hỗ trợ cho quá trình biên dịch TS sang ES6.
Bạn sẽ có thể tạo chức năng trì hoãn với async:
function delay(ms: number) {
return new Promise( resolve => setTimeout(resolve, ms) );
}
Và gọi nó
await delay(300);
Xin lưu ý rằng bạn chỉ có thể sử dụng chức năng awaitbên trong async.
Nếu bạn không thể ( giả sử bạn đang xây dựng ứng dụng nodejs ), chỉ cần đặt mã của bạn vào asynchàm ẩn danh . Đây là một ví dụ:
(async () => {
// Do something before delay
console.log('before delay')
await delay(1000);
// Do something after
console.log('after delay')
})();
Ứng dụng TS mẫu: https://github.com/v-andrew/ts-template
Trong OLD JS bạn phải sử dụng
setTimeout(YourFunctionName, Milliseconds);
hoặc là
setTimeout( () => { /*Your Code*/ }, Milliseconds );
Tuy nhiên với mọi trình duyệt chính hỗ trợ async/ awaitnó đã lỗi thời.
Cập nhật: TypeScript 2.1 có ở đây với async/await.
Chỉ cần đừng quên rằng bạn cần Promisetriển khai khi bạn biên dịch sang ES5, nơi Promise không có sẵn.