请你编写一个异步函数,它接收一个正整数参数 millis ,并休眠 millis 毫秒。要求此函数可以解析任何值。
示例 1:
输入:millis = 100
输出:100
解释:
在 100ms 后此异步函数执行完时返回一个 Promise 对象
let t = Date.now();
sleep(100).then(() => {
console.log(Date.now() - t); // 100
});
示例 2:
输入:millis = 200
输出:200
解释:在 200ms 后函数执行完时返回一个 Promise 对象
提示:
1 <= millis <= 1000
/*** @param {number} millis* @return {Promise}*/
// 使用async关键字,定义了异步函数sleep,异步函数可以在函数体内使用await关键字等待一个Promise的解析结果
async function sleep(millis) {// 创建一个Promise对象,通过setTimeout函数来延迟一段时间// setTimeout函数的第一个参数是回调函数,在millis时间结束后会调用该回调函数// 此处的r函数什么也没干,r函数被调用后,Promise对象状态从pending变为resolvedreturn await new Promise(r => setTimeout(r, millis))
}/** * let t = Date.now()* sleep(100).then(() => console.log(Date.now() - t)) // 100*/