uni-app 在app.vue中监听onError事件,无法触发
uni-app 在app.vue中监听onError事件,无法触发
| 项目 | 信息 | 
|---|---|
| 产品分类 | uniapp/小程序/微信 | 
| PC开发环境操作系统 | Windows | 
| PC开发环境操作系统版本号 | Windows 10 专业版 | 
| HBuilderX类型 | 正式 | 
| HBuilderX版本号 | 3.99 | 
| 第三方开发者工具版本号 | 1.06.2401020 stable | 
| 基础库版本号 | 3.3.3 | 
| 项目创建方式 | HBuilderX | 
示例代码:
home.vue  代码
methods:{
async getDiyInfo() {
let res = await this.$api.sendRequest({
url: '/api/diyview/info',
async: false,
data: {
site_id: this.shop_id || 0
}
});
if (res.data) {  
    let data = JSON.parse(res.data.value)  
    this.diyData = data+ceshi  
}}
}
onLoad(){
this.getDiyInfo()
}
app.vue代码
export default {
onError(err){
console.log('aaaaerr',err)
}
}
操作步骤:
执行以上代码
预期结果:
触发onError事件
实际结果:
onError事件没触发
bug描述:
在app.vue中监听onError事件,无法触发
如何使用原生微信小程序开发方式,onError是可以正常处罚
更多关于uni-app 在app.vue中监听onError事件,无法触发的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是我的测试代码,可以正常触发。 //app.vue
<script> export default { onLaunch: function() { console.log('App Launch'); setTimeout(() => { throw new Error("aaa"); },2000) uni.setLocale('zh-Hans') }, onShow: function() { console.log('App Show'); }, onHide: function() { console.log('App Hide'); }, onError: function(e) { console.log("异常触发:",e); } }; </script>更多关于uni-app 在app.vue中监听onError事件,无法触发的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你在这个app.vue抛出的错误(这个场景我这边也可以正常触发),我的场景是在其他页面vue文件抛出的错误无法触发
回复 4***@qq.com: 我刚刚在其他vue文件抛出错误测试了一下,也是正常触发,看看你的问题工程
回复 HRK_01: 那就奇怪了,onPageNotFound这个事情就正常触发的;我的工程是youpin_shop项目
回复 HRK_01: 后续在测试了一下,函数如何使用关键字async 错误就监听不到,未使用async就可以监听到
回复 4***@qq.com: 小程序原生代码编写方式也是有这样的情况
回复 4***@qq.com: 这需要去原生小程序平台那里反馈哦
vue2
能否提供一下工程?确定这个网络请求报错了吗
是故意使用一个未定义的变量this.diyData = data+ceshi ,控制台可以正常打印错误,onError还是捕抓不到,这个语句在原生小程序中就可以触发onError的事件;下面自行跑错错误的我这边也测试,一样无法触发onError,async getDiyInfo() { let res = await this.$api.sendRequest({ url: ‘/api/diyview/info’, async: false, data: { name: ‘DIYVIEW_SHOP_INDEX’, site_id: this.shop_id || 0 } }); if (res.data) {
回复 4***@qq.com: 已在上面回复
我跟你的情况一摸一样,也是不行,在单页面就不触发
请看一下上面回复
app.vue页面我也能正常触发,在别的页面里面触发不了
用原生代码写也能正常触发吗
我也遇到这个问题,这样是可以触发的
async function scanCode() {
const res = await wx
.scanCode({
scanType: ‘qrCode’
})
if (res.result) {
await oxygenChamber.connection(res.result)
}
}
但是这样就不行(错误没有被捕获直接抛到控制台了):
function scanCode() {
wx.scanCode({
scanType: ‘qrCode’
}).then(async (res) => {
if (res.result) {
await oxygenChamber.connection(res.result)
}
})
}
        
      
                    
                  
                    

