js promise 中使用 setTimeout 实现暂停执行
在使用 promise 时,需要使用 setTimeout 来进行延时执行
对 promise 还不太熟悉的同学可能第一时间想到的是这样的写法
如:
run();
async function run() {
console.log('1');
// 等待两秒之后执行
setTimeout(() => {
const data = await getData();
console.log(data);
}, 200);
}
function getData() {
return new Promise((resolve, reject) => {
resolve("200");
})
}
这样写 await 就报错了
想要实现延时效果,我们这里先封装个sleep
function x_sleep(time) {
return new Promise(resovle => {
setTimeout(() => {
resolve();
}, time)
})
}
此时就可以通过我们的 sleep函数去进行延时处理了
完整代码:
run();
async function run() {
console.log("1");
// 停止2秒
await x_sleep(2000);
const data = await getData();
console.log(data);
}
function getData() {
return new Promise((resolve, reject) => {
resolve("200");
})
}
function x_sleep(time) {
return new Promise(resolve => {
setTimeout(() => {
resolve();
}, time)
})
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?