这是一个近期频繁遇到的问题
相关问题
错误代码
Uncaught (in promise) thirdScriptError
{"errMsg":"hideToast:fail:toast can't be found"}
Object
触发设备
安卓真机,开发者工具,iOS 正常
触发概率
100%触发
代码:无
上传机型信息:无,随便找个安卓都可以
什么时候出现:
这几天,因为已上线的小程序都被影响到了,而且这些小程序以前都是正常的
分析原因
很简单,就是代码里 toast.hide 执行的时候发现没有Toast 可以关闭,所以就出错了。然后由于现在是 promise 错误并且没有拦截。所以导致后续代码无法执行。
可以说一半是开发者的问题,一半是官方的问题。
开发者的问题就是,没有 toast 开一个,关一个造成了问题。但是说实话,toast 设计成单例肯定会有这样的问题,因为我们根本不知道用户在什么地方触发了 toast,真的有可能会出现很多 toast。
官方的问题就是,这次基础库改动了,导致如果不一对一关闭,就会卡死用户手机,这个很蛋疼,因为再怎么样都不应该影响用户其他操作,特别是这种情况
我之前因为promise.then(wx.hideToast) 真机下会出错
改成 wx.hideToast() 就好了
在真机环境可能会接受除 success fail error 等别的参数
你好,promise reject 的异常上报,目前是 Error 类型才会上报,是否 reject 了一个 new Error?
1. 上图的截图是真机调试的,在真机上直接卡死连 vconsole 都点击不了,但是可以点击tabbar,点击 tabbar 后的页面也无法加载成功
2. 小程序有多处调用 toast,但是不太确定是哪个函数触发,怀疑的一个函数中,不是 Promise 对象,仅是普通函数。
但是函数开始的会主动 hideToast 一次,确保用户不会被其他情况下触发的 toast 挡住。
调用方式也是直接调用 hideToast
3. 这个问题之前完全没有遇到过,是最近用户上报的。自己通过安卓机测试也触发了,而且不止一个小程序