showloading 的使用问题
发布于 5 年前 作者 ycai 6916 次浏览 来自 问答

小程序 有很多个页面,

在访问服务器的时候 request接口防止 时间过长 ,加了 showloading , 在complete 里面调用hideLoading

由于页面跟服务器交互比较多 , loading条会一直频闪。 感觉体验不太好。

这块有没有好的解决方式?能实现 加载到最后一个才调用 hideLoading


如果放到每个页面,

一个是工作量确实很大, 大约有十几页;

另一个由于是异步处理的,这里面结束的顺序未必是先后顺序;

再有就是之后扩展起来比较麻烦。

这块高手能给个建议吗?是如何实现的?

3 回复

每次showLoading计数+1,每次complete计数-1,归零的时候才hide

req1:function(){
return new Promise(r => wx.request({ complete:r }))
}
,req2:function(){
return new Promise(r => wx.request({ complete:r }))
},
run(){
    wx.showLoading()
    Promise.all([this.req1, this.req2]).then(wx.hideLoading)
}

如果同时进行两个请求就在全部结束后执行hide。如果是同步先后请求,就在后者执行hide

补充, 我一般是在 第一个request的success 里面 再次调用request.

回到顶部