隐藏

小程序设置请求的超时时间以及处理

发布:2021/1/10 11:47:19作者:管理员 来源:本站 浏览次数:1638

小程序设置请求的时间以及处理


   当发送请求的时候,如果请求的时间超过设置的时间就会报错,这个报错在我们request的fail中


在app.json中配置


 "networkTimeout": {

   "request": 10000,

   "connectSocket": 10000,

   "uploadFile": 10000,

   "downloadFile": 10000

 },


对request进行简单封装


   这里以字节跳动小程序为例,微信小程序也是一样的


   只需替换全局对象tt即可


export default (options) => {

  tt.showLoading({

    title: '数据加载中',

   icon: 'loading'

  });

 const token = tt.getStorageSync('token');

 return new Promise((resolve, reject) => {

   tt.request({

     url: `${baseUrl}/${options.url}`,

     method: options.method || 'get',

     header: {

       "Authorization": `bearer ${token}`

     },

     data: options.data || {},

     success: (data) => {

      resolve(data);

          tt.hideLoading();

     },

     fail: (data) => {

           // 这里可以对请求超时之后。我们可以自定义的业务逻辑,这里只是简单举例

      reject(data);

          tt.hideLoading();

          tt.showModal({

               content: "请求超时..."

               showCancel: false,

               success: (res) => {

                // 重定向会首页

                tt.redirectTo({

                       url: 'pages/home/home'

                   })

}

           })

     },

     complete: (res) => {

       tt.hideLoading();

     }

   });

 });

}



建议在我们调用接口时,使用catch进行异常捕获,其实也就是执行promise中的reject


   简单举例


getHomeList(params).then(res => {


}).catch(err => {


});

// 建议将catch写上,以便出现问题时好解决