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

做刷题网站赚钱么设计类网站排名

做刷题网站赚钱么,设计类网站排名,oa办公系统有哪些,营销活动有哪些从 v0.22.0 开始#xff0c;Axios 支持以 fetch API 方式—— AbortController 取消请求 此 API 从 v0.22.0 开始已被弃用#xff0c;不应在新项目中使用 官网链接 1. 背景 最近项目中遇到一个场景#xff0c;当连续触发一个请求时#xff0c;如果是同一个接口#xf…从 v0.22.0 开始Axios 支持以 fetch API 方式—— AbortController 取消请求 此 API 从 v0.22.0 开始已被弃用不应在新项目中使用 官网链接 1. 背景 最近项目中遇到一个场景当连续触发一个请求时如果是同一个接口则保留最后一次的请求之前的请求取消。 查阅了下axios文档有一个属性CancelToken把这个添加到axios配置中 2. 使用 1在request时添加cancelToken request: [(config: AxiosRequestConfig) {const cacheKey ${config.method}${config.url}if (config.autoCancel) {removeCache(cacheKey)}config.cancelToken new axios.CancelToken((c) {caches[cacheKey] c})return config},(error: any) Promise.reject(error),], 2在reponse时删除key response: [(res: AxiosResponse) {const cacheKey ${res.config.method}${res.config.url}if (res.config.autoCancel) {removeCache(cacheKey)}return res},(error: any) Promise.reject(error),], 3判断是否存在重复请求 const caches: Recordstring, Canceler {} function removeCache(key: string) {if (caches[key]) {caches[key]()delete caches[key]} } 这里的autoCancel是为了解决url相同请求参数不同时自定义添加的具体请求方式可以根据这个值来决定是否开启cancelToken 3. 全部代码 /*** 通过取消重复请求解决请求“竞态”问题* - 如何定义“重复”method和url相同*/ import axios, { AxiosRequestConfig, Canceler, AxiosResponse } from axiosconst caches: Recordstring, Canceler {} function removeCache(key: string) {if (caches[key]) {caches[key]()delete caches[key]} }const cancelInterceptors {request: [(config: AxiosRequestConfig) {const cacheKey ${config.method}${config.url}if (config.autoCancel) {removeCache(cacheKey)}config.cancelToken new axios.CancelToken((c) {caches[cacheKey] c})return config},(error: any) Promise.reject(error),],response: [(res: AxiosResponse) {const cacheKey ${res.config.method}${res.config.url}if (res.config.autoCancel) {removeCache(cacheKey)}return res},(error: any) Promise.reject(error),], }export default cancelInterceptors在封装的axios里面添加配置 // 往request请求中添加配置 service.interceptors.request.use(...cancelInterceptors.request)// 往response请求中添加配置 service.interceptors.response.use(...cancelInterceptors.response) 在response失败error中axios返回了一个失败状态axios.isCancel(error) (error: AxiosError) {// if (axios.isCancel(error) error.message SCRM_CANCEL_MESSAGE) {// // 被手动取消的数据统计接口不展示提示if (axios.isCancel(error)) {// 被取消的接口不展示提示} else {message.error(error.response?.statusText || error.message || 网络错误)}// 网络层面错误如接口地址写错了会走到这里return Promise.reject(error)} 3. 原理 source fileaxios/lib/adapters/xhr.js 1创建请求 var request new XMLHttpRequest()if (config.cancelToken) {// Handle cancellationconfig.cancelToken.promise.then(function onCanceled(cancel) {if (!request) {return;}request.abort();reject(cancel);// Clean up requestrequest null;}); } 2创建新的取消 在source fileaxios/lib/cancel/CancelToken.js var token this;executor(function cancel(message) {if (token.reason) {// Cancellation has already been requestedreturn;}token.reason new Cancel(message);resolvePromise(token.reason);}); } 2取消请求 在axios/lib/adapters/xhr.js文件中取消request.abort();请求 if (config.cancelToken) {// Handle cancellationconfig.cancelToken.promise.then(function onCanceled(cancel) {if (!request) {return;}request.abort();reject(cancel);// Clean up requestrequest null;});} 笔记
http://www.hkea.cn/news/14266928/

相关文章:

  • 加强网站信息建设网站推广要具备什么
  • 电子商务网站 整站 psd响应式单页网站模板
  • 网站开发选择什么软件苏州专业做网站
  • 专做零食的网站腾讯企点电脑版
  • 电子商务网站搭建方案长沙网络推广网站制作
  • 网站建设怎么配置伪静态文件wordpress 分类目录删除
  • 济南网站建站推广python做软件的网站
  • 网站备案证书下载密码忘了网站开发设计语言
  • wordpress最新淘宝客程序优化网站浏览量怎么看
  • 做网站中怎么设置单张图片如何用家用电脑做网站
  • 做国外网站用什么颜色河北智能网站建设平台
  • 网站 为什么要备案wordpress怎么编写用户中心
  • 织梦做的网站自己建一个电商网站吗
  • 政务网站建设信息wordpress ip 地址修改密码
  • 广州做网站信科网络网站建设公司首选
  • 网站建设 需要注意什么管理咨询师
  • 中国变装网站教你如何做女人网架生产厂家联系方式
  • wordpress程序建站网站经常出现502
  • 做装修的有那些网站云匠网官网
  • 专业做公司宣传网站网站建设报价清单内容
  • 龙岗网站制作效果微信网站制作企业
  • 厦门做模板网站的公司网站后台上传文章格式
  • 一流的聊城做网站费用自贡做响应式网站开发公司
  • 网站集约化平台建设专注赣州网站建设
  • 网站建设运维情况2019做网站需要营业执照吗
  • 怎么在自己做的网站上发视频教程做家装网站源码
  • 上海网站建设口碑好大同网络公司
  • 淮安新港建设有限公司网站wordpress主题公园
  • 阿里云服务器 放多个网站装饰工程施工流程步骤
  • 电子商务网站建设实训报告文章孩子学编程一年要多少钱