当前位置: 首页 > 知识库问答 >
问题:

javascript - 问下各位下面情况要怎么实现啊,关于优化请求次数的?

年健
2023-07-06
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个答案

汤枫涟
2023-07-06
var getUserInfo = async () => {
    return getUserInfo.promise ||= requestUserInfo();
};
 类似资料:
  • 要实现的效果 右边内容部分滚动,左边的导航栏自动选中对应部分,导航栏点击也可以跳转到对应部分; 遇到的问题 右边内容特别多,标题大多嵌套在组件中,有些包含标题的部分还是循环出来的,不好获取标题; 目前想到的方法 在挂载完成后通过 querySelector 去获取所有的标题,

  • 宽度不定,图片和主要参建单位居中对齐,右边文字可以换行但是第一行和参建单位对齐

  • 刚刚接触 vue,各位大佬,请问下如果要将这个数据结构中的data数组的数据换成从数据库中请求来的数据该怎么做?我在路由器中写了赋值但好像不起作用,请教一下该怎么做才行 这是我的路由器代码

  • 我有一个开关案例,我想用双管引导3个不同的可能案例到一个结果。

  • 本文向大家介绍请问在什么情况下回使用assert?相关面试题,主要包含被问及请问在什么情况下回使用assert?时的应答技巧和注意事项,需要的朋友参考一下 考察点:JAVA 调试 assertion (断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个 boolean表达式进行检查,一个正确程序必须保证这个boolea