问下各位下面情况要怎么实现啊,关于优化请求次数的?
let _requestTime = 0;
// 模拟网络请求
const requestUserInfo = () => {
// 这个方法的实现不能修改
return Promise.resolve().then(() => {
return new Promise((resolve) => {
setTimeout(() => {
// 模拟 ajax 异步,1s 返回
resolve();
}, 1000);
}).then(() => {
// 当执行完成一次之后次数加1
_requestTime++;
return {
nick: "nick",
age: "18",
};
});
});
};
// -------- 在这里完成代码 优化getUserInfo --------
// 调用 requestUserInfo,并优化请求次数
const getUserInfo = async () => {
};
// 业务场景 -- 页面中的组件都用到了requestUserInfo请求, 想办法优化请求把请求次数降为1次
async function test () {
const result = await Promise.all([
getUserInfo(),
new Promise((resolve) =>
setTimeout(async () => {
resolve(await getUserInfo());
}, 300)
),
new Promise((resolve) =>
setTimeout(async () => {
resolve(await getUserInfo());
}, 2300)
),
]);
console.log(_requestTime) // 保证执行完Promise.all之后_requestTime为1就算成功
}
test()
回复
1个回答

test
2024-07-01
var getUserInfo = async () => {
return getUserInfo.promise ||= requestUserInfo();
};
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容