夜伴蛐蛐声
夜伴蛐蛐声
  • 发布:2024-01-18 14:49
  • 更新:2024-08-22 15:55
  • 阅读:283

【报Bug】UTS插件使用new Promise,监听不到reject和finally的回调事件

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 11 家庭中文版22621.3007

HBuilderX类型: Alpha

HBuilderX版本号: 3.99

手机系统: Android

手机系统版本号: Android 9.0

手机厂商: PDA

手机机型: DT40

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:
export const checkBluetoothIsConnected = () : Promise<ResponseResult> => {  
  return new Promise((resolve, reject) => {  
    const instance = new ResultCallback()  
    if (PrinterHelper.IsOpened()) {  
      resolve(instance.complete(200))  
    } else {  
      reject(instance.complete(9010001))  
    }  
  })  
}  
checkBluetoothIsConnected()  
    .then((response) => {  
      console.log(response)  
    })  
    .catch((res) => {  
      console.log(res)  
    })  
    .finally((e) => {  
      console.log(e)  
    })

预期结果:

catch里和finally里能监听到回调信息

实际结果:

catch和finally收不到回调信息,只能在resolve里收到

bug描述:

new Promise((resolve, reject) => {})的方式只能用resolve进去回调,如果失败的情况下用reject去回调,监听方会收不到,只能收到resolve的回调,控制台报错提示

2024-01-18 14:49 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com

我也是遇到这个问题,封装api返回Promise这种最好。但是预期达不到,失败不走catch和finally。所以只能设计成失败也走then或者传入回调的方式不走Promise。无奈啊,到处问都是无人应答。

要回复问题请先登录注册