以下问题在基础库2.24.1,2.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能够走到。 针对第二点,请保证错误字段能和文档真正对应起来,可能第一点也有这个问题,只不过现在没有办法测试。
这问题还没有解决方案吗...我今天也踩坑了,给了个必现demo在我发的帖子上
你看的什么文档