h***@163.com
h***@163.com
  • 发布:2024-08-12 12:38
  • 更新:2024-08-23 13:18
  • 阅读:383

【报Bug】内部addInterceptor returnValue报错TypeError: Cannot read property '0' of undefined

分类:uni-app

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

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 4.24

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

基础库版本号: 3.5.3

项目创建方式: HBuilderX

操作步骤:

调试基础库大于 2.29.2 都会出现

预期结果:

调试基础库大于 2.29.2 都会出现

实际结果:

Promise {<pending>}catch: (...)constructor: (...)finally: (...)hasOwnProperty: (...)isPrototypeOf: (...)propertyIsEnumerable: (...)then: (...)toLocaleString: (...)toString: (...)valueOf: (...)Symbol(Symbol.toStringTag): (...)defineGetter: (...)defineSetter: (...)lookupGetter: (...)lookupSetter: (...)proto: Object[[PromiseState]]: "fulfilled"[[PromiseResult]]: undefined

bug描述:

内部addInterceptor returnValue报错 WAServiceMainContext.js?t=wechat&s=1723431397928&v=3.5.3:1 TypeError: Cannot read property '0' of undefined

2024-08-12 12:38 负责人:无 分享
已邀请:
BFC

BFC

你好,提供一下复现的demo代码或者demo工程

  • h***@163.com (作者)

    demo已经提交,管理员可见

    2024-08-12 16:53

BFC

BFC

已确认bug,感谢反馈,已加分

BFC

BFC

你好,可以临时兼容修复一下,这个后面版本优化,
临时修复方式 将uni.promisify.adaptor.js 里面的res做一个判断

uni.addInterceptor({  
  returnValue (res) {  
    if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {  
      return res;  
    }  
    return new Promise((resolve, reject) => {  
      res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));  
    });  
  },  
});  
// 替换为  
uni.addInterceptor({  
  returnValue (res) {  
    if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {  
      return res;  
    }  
    return new Promise((resolve, reject) => {  
      res.then((res) => {  
          if (!res) return resolve()  
          return res[0] ? reject(res[0]) : resolve(res[1])  
      });  
    });  
  },  
});
BFC

BFC

版本已修复 4.26.2024082213-alpha

要回复问题请先登录注册