全盘崩坏
全盘崩坏
  • 发布:2023-06-18 20:30
  • 更新:2023-06-18 21:23
  • 阅读:254

【报Bug】在Promise中调用uni.request时,回调函数不会触发

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Mac

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

HBuilderX类型: 正式

HBuilderX版本号: 3.8.5

第三方开发者工具版本号: 最新

基础库版本号: 最新

项目创建方式: HBuilderX

示例代码:
function requestWithPromise() {  
    uni.request({  
        url: `https://www.baidu.com`,  
        success() {  
            console.log("普通请求触发success回调");  
        },  
        fail() {  
            console.log("普通请求触发fail回调");  
        }  
    });  
    return new Promise(function(resolve) {  
        console.log("Promise开始执行");  
        uni.request({  
            url: `https://www.baidu.com`,  
            success({data}) {  
                console.log("请求包裹在Promise触发success回调");  
                resolve(data);  
            },  
            fail() {  
                console.log("请求包裹在Promise触发fail回调")  
            }  
        });  
    });  
};  
requestWithPromise();

操作步骤:

粘贴代码运行到微信开发工具

预期结果:

在Promise中调用uni.request时可以正常进入回调函数

实际结果:

在Promise中调用uni.request时不能进入回调函数

bug描述:

request包裹在Promise中调用时,回调函数不会触发,success和fail都不触发

将uni替换为wx后直接在小程序开发工具中执行正常

2023-06-18 20:30 负责人:无 分享
已邀请:
全盘崩坏

全盘崩坏 (作者) - 此颜差矣!

之后微信开发者工具推送了1.06.2306020的版本在promise中的uni.request又可以正常触发回调了

昭昭L

昭昭L - 开心就好

我用3.7.9运行是正常的

function request(args) {  
  return new Promise((resolve, reject) => {  
    uni.request({  
      ...args,  
      success: res => {  
        resolve(res.data)  
      },  
      fail: error => {  
        reject(error)  
      }  
    })  
  })  
}

要回复问题请先登录注册