Bạn phải đợi TypeScript 2.0 hỗ trợ async
/ await
cho 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 await
bê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 async
hà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
/ await
nó đã 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 Promise
triển khai khi bạn biên dịch sang ES5, nơi Promise không có sẵn.