1***@qq.com
1***@qq.com
  • 发布:2024-01-20 00:08
  • 更新:2024-01-29 16:24
  • 阅读:762

【报Bug】uni.request 请求使用异步同步执行会出现卡住无响应

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

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

HBuilderX类型: 正式

HBuilderX版本号: 3.99

手机系统: iOS

手机系统版本号: iOS 15

手机厂商: 苹果

手机机型: iphone se2

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
async function test(){  
  console.log('开始'); // 打印完这个就出现卡住了  
  let res = await uni.request({  
    url: 'http://xxxx.com', // 这个链接是个不通的url就会卡住,如果通才会往下执行  
    timeout: 3000,  
  })  
  console.log(res);   
  console.log('结束');  
}             
test()

操作步骤:
async function test(){  
  console.log('开始'); // 打印完这个就出现卡住了  
  let res = await uni.request({  
    url: 'http://xxxx.com', // 可以链接换上能连上的和连不上的各执行一次就会发现问题  
    timeout: 3000,  
  })  
  console.log(res);  
  console.log('结束');  
}             
test()

预期结果:

正常会打印 开始 -> 请求结束 -> 结束

实际结果:

现在却只打印 开始 -> 卡住无响应

bug描述:

ios 使用 uni.request 做异步同步处理时,如果 url 是不通的就会卡住不会再住下执行了。

2024-01-20 00:08 负责人:无 分享
已邀请:
JXWang

JXWang

当请求的链接不通时,会报错,后边的代码就不继续执行了,想要请求接口报错也能执行后边代码的话,加个try catch就可以了

async function test() {  
                console.log('开始'); // 打印完这个就出现卡住了    
                let res;  
                try {  
                    res = await uni.request({  
                        url: 'http://tesdasu.com', // 这个链接是个不通的url就会卡住,如果通才会往下执行    
                        timeout: 3000,  
                    })  
                } catch (e) {  
                    //TODO handle the exception  
                }  
                console.log(res);  
                console.log('结束');  
            },

要回复问题请先登录注册