收藏
回答

onError不能捕获unhandledrejection

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 工具 6.7.1 2.1.0

我在Promise的then回调中抛出一个error,没有使用catch处理:


function timeout(ms)
{
    return new Promise((resolve) =>
    {
        setTimeout(resolve, ms);
    });
}
 
timeout(100).then(() =>
{
    throw new Error("test");
});


console的报错截图是这样的:



我发现onError方法不能捕获未处理的Promise错误,即unhandledrejection。


那我应该怎样怎样全局监听unhandledrejection呢?


回答关注问题邀请回答
收藏

12 个回答

  • egg🍳
    egg🍳
    2018-09-02

    同求. 求解决 ,今天算是被坑到了

    2018-09-02
    有用 2
    回复
  • 陈 哈哈哈哈
    陈 哈哈哈哈
    2019-10-24

    我复写了console.error,在console.error里监听。

    2019-10-24
    有用 1
    回复
  • Mickey.X🇨🇳
    Mickey.X🇨🇳
    2018-08-14

    onError是小程序内部的回调,并不是语言/环境级别的异常捕获,Promise rejection只能自己catch啦~~~

    2018-08-14
    有用 1
    回复 1
    • 寒雁
      寒雁
      2018-08-15

      网页阔以这样监控

      window.addEventListener("unhandledrejection", function(event)
      {
       
      });


      如果小程序也支持一下就好啦

      2018-08-15
      回复
  • ^
    ^
    05-13
    // 上面有同学提到重新 console.error 方法,有用!!!
    
    var originError = console.error
    console.error = function(){
      originError(...arguments)
      // 上报错误日志  
    }
    
    05-13
    有用
    回复
  • 志遥
    志遥
    2019-08-27

    https://developers.weixin.qq.com/community/develop/doc/000c8cf5794770272709f38a756000 官方同学说在解决这个问题了

    2019-08-27
    有用
    回复
  • 马玲俊
    马玲俊
    2019-08-03

    同求,纳闷为啥有些地方报错就不会触发,原来是异步函数里的报错就不会触发onError。 求解决方案

    2019-08-03
    有用
    回复
  • 兰昊
    兰昊
    2019-07-16

    也是懒啊

    2019-07-16
    有用
    回复
  • Xiaomin
    Xiaomin
    2019-07-16

    求解决, 有人有解决方案了吗

    2019-07-16
    有用
    回复
  • 江南小生
    江南小生
    2018-09-28

    直接使用

    addEventListener("unhandledrejection"function(event)

    {

     

    });

    就可以了

    2018-09-28
    有用
    回复 2
    • 江南小生
      江南小生
      2018-09-28

      开发者工具可以这样用, 但是真机不行(android)

      2018-09-28
      回复
    • C小K
      C小K
      2019-01-03

      这个有最终的解决方案吗,同求

      2019-01-03
      回复
  • 仙森ღ₅₂₀¹³¹⁴
    仙森ღ₅₂₀¹³¹⁴
    2018-08-10

    同求. 求解决 

    2018-08-10
    有用
    回复 2

正在加载...

登录 后发表内容