Reaper
Reaper
  • 发布:2023-03-08 05:06
  • 更新:2023-03-10 09:32
  • 阅读:952

【报Bug】uni.request 断网在启动后 报{"errMsg":"request:fail abort statusCode:-1"}

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 11

HBuilderX类型: 正式

HBuilderX版本号: 3.7.6

手机系统: 全部

页面类型: nvue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

魅族18,小米12,iqoo z1,红米K40,oppo reno6

示例代码:
            uni.request({  
                url: apiUrl, //仅为示例,并非真实接口地址。  
                data: data,  
                method: method,  
                header: header,  
                success: (apiRes) => { //成功  
                    switch (apiRes.data.code) {  
                        case 0:  
                            console.log(  
                                "%c 备注:", 'font-size:15px', apiName,  
                                "\n 提交方式:", method,  
                                "\n 提交地址:", apiUrl,  
                                "\n 提交data:", data,  
                                "\n 请求返回", apiRes.data);  
                            break;  
                        default:  
                            console.log(  
                                "%c 备注:", 'font-size:15px', apiName,  
                                "\n 提交方式:", method,  
                                "\n 提交地址:", apiUrl,  
                                "\n 提交data:", data,  
                                "\n 请求返回", apiRes.data);  
                            break;  
                    }  

                    console.log(apiRes)  
                },  
                fail(apiRes) { //失败  
                    resolve(apiRes); //成功返回,resolve是Promise的回调方式  
                    console.error(  
                        "%c 备注:", 'color:red;font-size:15px', apiName,  
                        "\n 提交方式:", method,  
                        "\n 提交地址:", apiUrl,  
                        "\n 提交data:", data,  
                        "\n 请求返回", apiRes);  
                    if(show){  
                        uni.hideLoading();  
                    }  
                },  
                complete(res) { //结束  
                    // #ifdef APP-PLUS  
                    if (getApp().globalData.log == true) {  
                        var logData = '备注:' + apiName +'\r\n'+ '提交方式:' + method + '\r\n'+'提交地址:' + apiUrl +'\r\n'+'token:'+uni.getStorageSync('token')+'\r\n'+ '提交data:' +   
                            JSON.stringify(data) +'\r\n'+ '请求返回' + JSON.stringify(res.data)  
                        log.writeLog(logData, false);  
                    }  
                    // #endif   
                    if(show){  
                        uni.hideLoading();  
                    }  

                }  
            });  

操作步骤:

关闭WIFI和数据后打开 APP uni.request调用返回 {"errMsg"quot;request:fail abort statusCode:-1"}
此时在打开WIFI或数据 APP uni.request直接不响应 出现假死状态 所有的API都不请求
最后从后台关闭APP再进 部分手机 进去会成一直假死的状态 只有从后台清除缓存 或者重新下载才能恢复

预期结果:

手机 进去会成一直假死的状态 只有从后台清除缓存 或者重新下载才能恢复

实际结果:

如下视频 只有卸载重装才能恢复

bug描述:

关闭WIFI和数据后打开 APP uni.request调用返回 {"errMsg"quot;request:fail abort statusCode:-1"}
此时在打开WIFI或数据 APP uni.request直接不响应 出现假死状态 所有的API都不请求 (网络恢复后还是原来的样子)

但是再web上面运行复现不了这个问题 只有在真机里面才会有这个问题

2023-03-08 05:06 负责人:DCloud_Android_THB 分享
已邀请:
DCloud_Android_THB

DCloud_Android_THB

我这边使用hellouni进行测试是正常的,请提供复现demo。

  • Reaper (作者)

    已经找到解决方案 加个定时任务就好了

    2023-03-10 18:55

  • 陛下有贱客

    回复 Reaper: 感谢大佬 问了很多群没有一个回复的,按照你的方法加了个定时器解决了这个问题 不知道为什么会这样

    2023-09-03 18:59

  • 1***@qq.com

    回复 Reaper: 你好,请问定时任务的逻辑是怎样的

    2024-10-28 15:06

Reaper

Reaper (作者)

警测试 uni.request 是有走的 只不过他一直返回异常 没网 但是网络确定已经恢复

取舍

取舍 - 我们都如流星短暂 但谁能像它闪耀

应该和这个一样 https://developers.weixin.qq.com/community/develop/doc/000a060d274238564c0ea8b105b400

  • Reaper (作者)

    好像真是

    2023-03-10 18:55

要回复问题请先登录注册