您的位置:首页 > 新闻 > 会展 > 湘潭网站外包公司_宿迁房产中介_黄冈网站推广软件有哪些_广告投放这个工作难不难做

湘潭网站外包公司_宿迁房产中介_黄冈网站推广软件有哪些_广告投放这个工作难不难做

2025/2/25 1:24:43 来源:https://blog.csdn.net/weixin_49722066/article/details/145726183  浏览:    关键词:湘潭网站外包公司_宿迁房产中介_黄冈网站推广软件有哪些_广告投放这个工作难不难做
湘潭网站外包公司_宿迁房产中介_黄冈网站推广软件有哪些_广告投放这个工作难不难做

类似这种切换tab时,如果操作很快并且网络不太好,就出现数据错乱,在网上查了一圈,有一个使用uview拦截处理的,但是原生uni.requse没有找到详细的解决办法,就查到使用 abort 方法,我自己封装了一个,试了一下效果还可以。

request.js const pending = [];    // 用来记录队列中的请求// 判断是否有重复的请求并移除
let removePending = (config) => {for (let p = 0; p < pending.length; p++) {console.log(pending[p]);if (pending[p].u === config.url?.split("?")[0] + "&" + config.method) {//当当前请求在数组中存在时执行函数体pending[p].requestTask.abort();pending.splice(p, 1); //数组移除当前请求}}
};export function request(options) {return new Promise((reslove, reject) => {// 每次发送请求之前判断一下removePending(options);const requestTask = uni.request({...,complete: (res) => {// 从请求队列中移除已经执行完成的请求const excutingIndex = pending.findIndex(item => item.requestTask === requestTask)pending.splice(excutingIndex, 1)}})//把请求加入队列数组中pending.push({u: options.url?.split("?")[0] + "&" + options.method,requestTask: requestTask,});})
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com