收藏
回答

异步require错误处理不一致的问题?

以下问题在基础库2.24.12.20.2,2.19.2,2.16.0,2.13.0(可能不全)上有这个问题,其他没有这个问题。

既然是特定基础库的问题,可以考虑更新该文档https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages/async.html,给一些兼容性方面的提醒。

以下为原问题:

---------------------------------------------------------------------------------------------------------------------------------------------

1.如果使用callback的方式,异步调用一个根本不存在的模块,报错信息并不会到error callback函数里

require('path/to/echarts2.js',//这个模块不存在
  (mod) => {
      common = mod
  },
  ({ errMsg, mod }) => {//因为模块不存在,理论上应该走到error callback里,但是实际上并不会,而是直接抛了一个系统级的错误
      console.error(`path: ${mod}, ${errMsg}`)
  }
)

2.如果使用promise的方式,异步调用一个根本不存在的模块,报错信息会走到catch函数里,但是错误里并没有文档声称的errMsg和mod字段。

require
    .async('path/to/echarts2.js')//这个模块不存在
    .then((mod) => {
        console.log(mod)
    })
    .catch(({ errMsg, mod }) => {
        // 根本没有errMsg和mod字段
        console.error(`path: ${mod}, ${errMsg}`)
    })


期望:

针对第1点,请保证error callback能够走到。 针对第二点,请保证错误字段能和文档真正对应起来,可能第一点也有这个问题,只不过现在没有办法测试。


最后一次编辑于  2023-03-22
回答关注问题邀请回答
收藏

2 个回答

  • 椰子
    椰子
    2023-05-23

    这问题还没有解决方案吗...我今天也踩坑了,给了个必现demo在我发的帖子上

    2023-05-23
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    2023-03-22

    你看的什么文档

    2023-03-22
    有用
    回复 8
    查看更多(3)
登录 后发表内容