收藏
回答

GridAd.show()内部异常1004未捕获,导致.catch内代码根本不触发

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小游戏 Bug GridAd 微信安卓客户端 7.0.14 2.11.1

创建广告组件中的格子广告组件,在调用show方法后会报下面的1004错误,show方法的后续catch无法被触发,但是GridAd的onError监听可以被触发。

这个bug会导致我自己的Promise无法在show方法的catch中去reject,逻辑直接无法跑通了。

this.gridAd.show().then(() => {
    console.log('格子广告显示成功');
    resolve();
  }).catch((e) => {
    //此处无法被触发,
    console.log('格子广告显示失败');
    //此处的reject无法被调用,导致外层逻辑直接断掉
    reject(e);
})
//下方回调可以被触发
this.gridAd.onError((err) => {
  console.log('grid ad onError:', err);
})

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

1 个回答

  • 小游戏运营专员-宏
    小游戏运营专员-宏
    2020-05-28

    1004属于正常情况,当返回1004错误码的时候需要做一下兼容

    https://developers.weixin.qq.com/minigame/dev/api/ad/GridAd.onError.html

    2020-05-28
    有用
    回复 13
    • 浪客建心
      浪客建心
      2020-05-28
      问题时无法捕获该异常呀,麻烦仔细看下我的帖子内容好吗。GridAd.show().catch(e => {})在报1004时根本就没有被触发啊。
      2020-05-28
      回复
    • 叶德颖
      叶德颖
      2020-05-28
      show 是否可以在 onLoad 触发回调后再触发,如果 onError 了则不调用 show 及后续流程,目前在 onError 时广告组件不保证 show 的失败态
      2020-05-28
      1
      回复
    • 小游戏开发-Forever
      小游戏开发-Forever
      2020-05-28回复浪客建心
      其实可以把reject函数引用赋值给一个外部变量,然后这个外部变量放在onError回调里进行调用的。
      2020-05-28
      1
      回复
    • 小游戏开发-Forever
      小游戏开发-Forever
      2020-05-28回复浪客建心
      不过这个问题已经修复了,你可以测试一下
      2020-05-28
      回复
    • 浪客建心
      浪客建心
      2020-05-28回复小游戏开发-Forever
      刚升级了微信开发者工具到1.03.2005140的最新稳定版本,结果不但这个问题仍然存在,而且激励广告也出问题了,在游戏开始创建激励广告后,直接报了多个错误
      2020-05-28
      回复
    查看更多(8)
登录 后发表内容
问题标签