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

腾讯网站建设的基本情况怎么做外贸企业网站

腾讯网站建设的基本情况,怎么做外贸企业网站,网站开发技术书籍,榆林网站建设公司原生微信小程序中进行 API 请求 当在原生微信小程序中进行 API 请求时#xff0c;封装请求可以提高代码的可维护性和可扩展性。在本篇博客中#xff0c;我们将一步步介绍如何进一步封装请求#xff0c;并添加请求超时、拦截器和请求取消功能。 第一步#xff1a;基本请求封…原生微信小程序中进行 API 请求 当在原生微信小程序中进行 API 请求时封装请求可以提高代码的可维护性和可扩展性。在本篇博客中我们将一步步介绍如何进一步封装请求并添加请求超时、拦截器和请求取消功能。 第一步基本请求封装 首先我们创建一个用于发送 HTTP 请求的基本封装。在微信小程序中我们使用 wx.request 发送请求这里我们将它封装成一个 Promise 风格的函数 // request.jsfunction request(url, method, data, header {}) {return new Promise((resolve, reject) {wx.request({url: url,method: method,data: data,header: {content-type: application/json, // 根据需求设置请求头...header,},success: (res) {if (res.statusCode 200) {resolve(res.data);} else {reject(new Error(请求失败));}},fail: (err) {reject(err);},});}); }export function get(url, data {}, header {}) {return request(url, GET, data, header); }export function post(url, data {}, header {}) {return request(url, POST, data, header); }这段代码中我们定义了两个函数 get 和 post分别用于发送 GET 和 POST 请求并返回一个 Promise以便在请求成功或失败时进行处理。 第二步请求超时 为了实现请求超时功能我们可以使用 Promise 的 Promise.race 方法。我们创建一个新的 Promise设置一个超时时间然后将它与实际请求的 Promise 进行竞争。如果超时时间内请求未完成我们可以取消请求并抛出一个超时错误。 // request.jsfunction requestWithTimeout(url, method, data, header {}, timeout 5000) {return new Promise((resolve, reject) {const timer setTimeout(() {reject(new Error(请求超时));}, timeout);wx.request({url: url,method: method,data: data,header: {content-type: application/json, // 根据需求设置请求头...header,},success: (res) {clearTimeout(timer);if (res.statusCode 200) {resolve(res.data);} else {reject(new Error(请求失败));}},fail: (err) {clearTimeout(timer);reject(err);},});}); }export function getWithTimeout(url, data {}, header {}, timeout 5000) {return requestWithTimeout(url, GET, data, header, timeout); }export function postWithTimeout(url, data {}, header {}, timeout 5000) {return requestWithTimeout(url, POST, data, header, timeout); }第三步请求拦截器和响应拦截器 拦截器允许我们在请求发出前和响应返回后进行一些自定义操作例如添加请求头、记录日志或处理错误信息。我们可以通过使用函数链来实现这一功能。首先我们创建两个空数组 requestInterceptors 和 responseInterceptors用于存储拦截器函数。然后我们通过一个函数来添加拦截器每个拦截器都是一个函数接受 config请求配置或 response响应对象作为参数并可以对它们进行修改。最后在请求或响应时我们通过遍历这些拦截器数组依次执行它们。 // request.jslet requestInterceptors []; let responseInterceptors [];// 添加请求拦截器 export function addRequestInterceptor(interceptor) {requestInterceptors.push(interceptor); }// 添加响应拦截器 export function addResponseInterceptor(interceptor) {responseInterceptors.push(interceptor); }function executeInterceptors(interceptors, data) {return interceptors.reduce((prevData, interceptor) {return interceptor(prevData);}, data); }function request(url, method, data, header {}, timeout 5000) {// ...// 执行请求拦截器config executeInterceptors(requestInterceptors, config);// ...// 执行响应拦截器responseData executeInterceptors(responseInterceptors, responseData);// ... }// ...你可以使用 addRequestInterceptor 和 addResponseInterceptor 函数来添加自定义的拦截器例如 import { addRequestInterceptor, addResponseInterceptor } from ./request;// 添加请求拦截器 addRequestInterceptor((config) {// 在请求发出前进行一些操作例如添加请求头config.header[Authorization] Bearer getToken();return config; });// 添加响应拦截器 addResponseInterceptor((response) {// 在响应返回后进行一些操作例如处理错误信息if (response.statusCode ! 200) {throw new Error(请求失败);}return response.data; });第四步请求取消 为了实现请求取消功能我们可以使用 Axios 风格的取消令牌CancelToken。我们需要创建一个 CancelToken 对象并将它包含在请求的配置中。然后在需要取消请求的地方我们可以调用 cancel 方法取消请求。 // request.jslet cancelToken new wx.miniProgram.CancelToken();function requestWithCancel(url, method, data, header {}, timeout 5000) {return new Promise((resolve, reject) {wx.request({url: url,method: method,data: data,header: {content-type: application/json, // 根据需求设置请求头...header,},cancelToken: cancelToken.token, // 设置取消令牌success: (res) {if (res.statusCode 200) {resolve(res.data);} else {reject(new Error(请求失败));}},fail: (err) {reject(err);},});}); }// 取消请求 export function cancelRequest() {cancelToken.cancel(请求取消); } 进一步封装请求超时、拦截器和请求取消功能可以提高代码的灵活性和可维护性。以下是一个更完整的原生微信小程序 API 请求封装包括这些功能javascript Copy code // api.js// 创建一个取消请求的 CancelToken const CancelToken wx.miniProgram.CancelToken;// 默认配置 const defaultConfig {baseURL: , // 请求基础 URLtimeout: 5000, // 请求超时时间毫秒 };// 请求拦截器 function requestInterceptor(config) {// 在请求发送之前可以进行一些操作例如添加请求头config.header {content-type: application/json,...config.header,};return config; }// 响应拦截器 function responseInterceptor(response) {// 在收到响应后可以进行一些操作例如处理错误信息if (response.statusCode ! 200) {throw new Error(请求失败);}return response.data; }// 创建请求实例 const instance wx.request.create({timeout: defaultConfig.timeout,header: {content-type: application/json,}, });// 发送请求的函数 function sendRequest(config) {const { baseURL, timeout, ...restConfig } { ...defaultConfig, ...config };const { url, method, data, params, cancelToken, ...otherConfig } restConfig;// 合并请求 URLconst fullURL ${baseURL}${url};// 创建 CancelToken 实例const source CancelToken.source();// 设置取消令牌otherConfig.cancelToken source.token;// 发送请求return instance({url: fullURL,method,data,params,...otherConfig,}).then(responseInterceptor).catch((error) {if (wx.miniProgram.isCancel(error)) {// 请求被取消console.log(请求已取消);} else {// 请求发生错误console.error(请求失败, error);}throw error;}); }export { sendRequest, requestInterceptor, responseInterceptor };在上面的代码中添加了以下功能 请求超时可以通过设置 timeout 来指定请求超时时间如果请求在规定时间内未完成将会被取消。 请求拦截器和响应拦截器可以在发送请求前和处理响应后进行一些自定义操作例如添加请求头或处理错误信息。 请求取消我们使用 Axios 的取消令牌CancelToken来支持请求取消功能。可以在请求配置中设置 cancelToken然后在需要取消请求的地方调用 source.cancel()。 使用这个进一步封装的请求函数 sendRequest你可以在项目中更加灵活地处理网络请求同时在拦截器中进行自定义操作以满足不同场景的需求。在小程序的页面中导入 sendRequest 并使用它来发起请求即可。 以上就是原生微信小程序中进行 API 请求时感谢大家的阅读 如碰到其他的问题 可以私下我 一起探讨学习 如果对你有所帮助还请 点赞 收藏谢谢~ 关注收藏博客 作者会持续更新…
http://www.yutouwan.com/news/145112/

相关文章:

  • 龙岗在线网站制作南通高端网站设计开发
  • 做fpga的网站珠海集团网站建设
  • 校园网站建设培训的心得体会临淄信息网最新招聘信息
  • 商城网站设计价格电商型网站
  • 广州企业网站建站公司哪家好做旅游网站需要引进哪些技术人才
  • 网站界面用什么做定制网站开发公司哪家好?点击查看
  • 手机网站制作报价表做简历比较好的网站叫什么
  • 怎么做企业网站排名临沂网站建设联系方式
  • 西安网站建设网站上海公交建设公司官网
  • 西安正邦网站建设贵州省城市建设厅网站
  • 阿里巴巴如何做网站wordpress官网中文版下载
  • 高端服装产品网站建设成都网站制作需要多少钱
  • 心理学网站开发广东知名网站建设
  • 农资网站建设响应式布局详解教程
  • wordpress define百度seo新站优化
  • wordpress下载资源站主题wordpress 标签页logo
  • 发布网站的空间莒县建设局官方网站
  • 境外公司在国内建网站vs2015做网站如何添加控件
  • 新网站做seo免费下载百度
  • 网站建设费放什么科目河北省招投标信息网
  • 景区网站建设案例在网上做效果图赚钱的网站
  • 网站录入信息 前台查询功能怎么做邢台做网站费用
  • 网站分类有哪几类鞍山网站怎么做出来的
  • 做民宿要给网站多少合同钱网站背景动图怎么做
  • 移动app与网站建设的区别电商网站如何备案
  • 中小企业网站建设开题报告discu论坛网站模板
  • 沈阳网站建设发布平面设计接单报价表
  • 无锡专业制作网站中国知名企业排行榜
  • 电子商务网站建设与课程设计淘宝服务商平台
  • 网站开发和app的区别百度站长工具seo