LeetCode 2621.睡眠函数

本文介绍如何编写一个异步函数`sleep`,接受正整数参数`millis`,通过Promise和setTimeout实现指定时间的延迟。函数返回一个Promise,示例展示了在不同时间后输出Promise解析的时间差。
摘要由CSDN通过智能技术生成

请你编写一个异步函数,它接收一个正整数参数 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变为resolved
    return await new Promise(r => setTimeout(r, millis))
}

/** 
 * let t = Date.now()
 * sleep(100).then(() => console.log(Date.now() - t)) // 100
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值