当前位置: 首页 > news >正文

昆明市最新消息互联网优化是什么意思

昆明市最新消息,互联网优化是什么意思,跨境电商怎么做?如何从零开始学做电商赚钱,邯郸本地网站优化 getUserInfo 请求 要求 getUserInfo 是个通用接口,在各个模块里面都有可能使用 requestUserInfo 模拟的是请求服务端真正获取用户信息的方法 业务背景 在一个页面有 A, B, C 等多个功能模块,A, B, C 模块渲染执行顺序不可控每个模块都会调用 get…

优化 getUserInfo 请求

要求
getUserInfo 是个通用接口,在各个模块里面都有可能使用 requestUserInfo 模拟的是请求服务端真正获取用户信息的方法

业务背景

  • 在一个页面有 A, B, C 等多个功能模块,A, B, C 模块渲染执行顺序不可控
  • 每个模块都会调用 getUserInfo 这个方法, 这个方法是可以直接调用 requestUserInfo 获取用户信息
  • 调用三次就会发起三次网络请求
  • 现在需要优化 getUserInfo 这个方法, 保证 getUserInfo 方法3次调用后, 最终只会发出一次网络请求。

测试用例

import { isEqual } from 'lodash-es';/*** 第二题*/// 核心用户请求
let _requestTime = 0;
const requestUserInfo = () => {// 这个方法的实现不能修改return Promise.resolve().then(() => {return new Promise<void>((resolve) => {setTimeout(() => {// 模拟 ajax 异步,1s 返回resolve();}, 1000);}).then(() => {_requestTime++;return {nick: "nick",age: "18",};});});
};async () => {try {// 模拟请求const result = await Promise.all([getUserInfo(),new Promise(resolve => setTimeout(async () => { resolve(await getUserInfo()) }, 300)),new Promise(resolve => setTimeout(async () => { resolve(await getUserInfo()) }, 2300))]);if (!isEqual(result, [{nick: "nick",age: "18",}, {nick: "nick",age: "18",}, {nick: "nick",age: "18",}])) {throw new Error('Wrong answer');}return _requestTime === 1;} catch (err) {console.warn('测试运行失败');console.error(err);return false;}
};

思路

  • 由于测试用例使用Promise.all调用,则需要返回Promise。
  • 又因为只需要调用一次接口则拿到数据之后需要缓存方便共享。
  • 一旦有数据那就直接resolve。
  • 由于Promise返回的也是Promise,可以缓存第一次的Promise,如果存在则只需要等第一次结束
  • 结束之后的Promise我们再通过拿到结果进行resolve。

实现

let cache = null;
let preRequest = null;
const getUserInfo = () => {return new Promise((resolve,reject)=>{if(cache) resolve(cache)if(preRequest){preRequest.then(res=>{resolve(cache)}).catch(err=>{reject(cache)})}else{preRequest = requestUserInfo().then(res => {cache = res;resolve(res)}).catch((err) => {reject(err)})}})
}
http://www.khdw.cn/news/48651.html

相关文章:

  • 域名注册好了 怎么做网站淘宝关键词推广
  • flash网站制作教程seo计费系统开发
  • 做营销最好的网站源码如何制作网页
  • 网站建设教育网站权重怎么查
  • 市场营销考研可以考哪些专业惠州百度seo哪里强
  • c 做游戏的网站教学百度关键词代做排名
  • 那家网站做照片书好中国十大软件外包公司
  • 微企免费做网站网站快速收录
  • wordpress数据库版本号台州seo网站排名优化
  • 成都建设项目环境影响登记网站优化网站seo公司
  • 中盛浩瀚建设有限公司网站外贸seo软文发布平台
  • 开发公司项目经理职责正规网站优化公司
  • 网站开发 公司百度搜索资源平台token
  • 做外贸网站注意杭州关键词优化外包
  • 郑州网站建设设计公司哪家好关键词排名什么意思
  • 珠海市做网站网站seo查询
  • 网站开发培训机构sem代运营托管公司
  • 网站内页产品 首页推荐长沙网站建设公司
  • 德州网站开发个人怎么做免费百度推广
  • 手机定制网站建设seo优化网站推广专员招聘
  • 江门搜狗网站推广优化昆明seo推广外包
  • 丽江市网站建设百度快照是干什么的
  • 市政府门户网站建设如何提高网站搜索排名
  • 新建的网站百度多久才会收录网上培训课程平台
  • 做网站难还是app难重庆seo论
  • 代理公司英文武汉seo首页
  • 网站建设 业务培训大连网站搜索排名
  • 老司机做爰网站老师影音黑帽seo培训大神
  • 西安哪里可以做公司网站品牌推广策略有哪几种
  • 仿做唯品会网站新闻稿