คุณต้องรอ TypeScript 2.0 พร้อมasync
/ await
สำหรับการสนับสนุน ES5 เนื่องจากตอนนี้รองรับเฉพาะการคอมไพล์ TS to 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
ล้าสมัยแล้ว
UPDATE: typescript 2.1 async/await
อยู่ที่นี่กับ
อย่าลืมว่าคุณต้องPromise
ติดตั้งใช้งานเมื่อคุณคอมไพล์กับ ES5 โดยที่สัญญาไม่พร้อมใช้งาน