Intuition
Code
Async Await
async function sleep(millis: number): Promise<void> {
await new Promise((resolve, reject) => {
setTimeout(resolve, millis);
});
}
Without Syntactic Sugar
/**
* @param {number} millis
* @return {Promise}
*/
async function sleep(millis) {
return new Promise((resolve, reject) => {
try {
setTimeout(resolve, millis);
} catch (e) {
reject(e.message());
}
}).then(() => {console.log("made it!")});
}
/**
* let t = Date.now()
* sleep(100).then(() => console.log(Date.now() - t)) // 100
*/
References