睡眠函数 Promise异步
- 题目
- 题解
题目
请你编写一个异步函数,它接收一个正整数参数 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
对象
题解
/**
* @param {number} millis
* @return {Promise}
*/
async function sleep(millis) {
return new Promise((resolve) => {
// 多加一步判断 number
if (typeof millis !== "number") return 0;
setTimeout(() => {
resolve();
}, millis)
})
}
/**
* let t = Date.now()
* sleep(100).then(() => console.log(Date.now() - t)) // 100
*/