微信 js-sdk 文档里写 wx.config 配置完成后的回调函数可以用 wx.ready 和 wx.error 传入,但好像 wx.ready 传入的回调无论成不成功都会被调用,也就是说如果失败的话 wx.error 传入的函数和 wx.ready 传入的函数都会被执行一遍。那这样的话想只在成功后才执行的回调函数该放在哪儿呢?
1
linxl 2016-12-26 14:26:32 +08:00
有 debug 模式可以.
|
2
2zH 2016-12-26 15:00:19 +08:00
wx.config 的 debug 设置为 true ,执行后无论成功或失败都会有一个带提示信息的 alert
|
3
jimliang 2016-12-26 16:32:37 +08:00
可以用一个 Promise 来保存状态,这样有两个好处, 一, Promise 来处理异步 二, Promise.state 状态唯一不可修改
``` var p function checkWx() { return p || (p = new Promise((resolve, reject) => { if (!navigator.userAgent.match(/micromessenger\/(\d+\.\d+\.\d+)/i)) { return reject(new Error()) } wx.error(res => reject(new Error(res.errMsg))); // ready 放在后面,好像无论如何 ready 都会执行 wx.ready(() => resolve(wx)); })) } ``` |
4
2zH 2016-12-26 16:54:15 +08:00
抱歉……没看仔细
|
5
node OP |