微信公众号封装wx.ready和wx.error为Promise函数确保接口正确执行

如果要使用微信提供的JS-SDK,其中一步是使用wx.config来注入配置信息来进行权限验证。

但是wx.config是一个客户端的异步操作,如果需要在页面加载时就调用相关接口,就必须确保wx.config权限验证完毕后再调用接口。

微信提供了wx.ready函数,虽然文档上说wx.ready是验证成功时执行的函数,但权限验证成功或失败都会调用也就是说如果权限验证通过,只会调用wx.ready函数,如果权限验证失败,先调用wx.error函数,然后再调用wx.ready

所以在wx.ready里调用接口也不保险,我们需要在真正验证时才调用接口。可以封装了一个Promise函数来解决这个问题:

function checkIsReady() {
  return new Promise((resolve, reject) => {
    wx.ready(() => resolve())
    wx.error(err => reject(err))
  })
}

checkIsReady().then(() => {
  //这里调用接口
}).catch(err => {
  //这里处理错误
})

另外如果是用户一些操作触发时才调用的JS SDK接口,则可以直接调用,不需要放在ready函数中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 先引入JS 文件 this.wxShare() 在created里调用 首先登陆微信公众号 JSSDK使用步骤 步...
    寄鱼予海与你阅读 6,959评论 1 3
  • 1. 准备工作 1.1 查看公众号分享接口权限 要使用微信SDK必须要有经过微信认证的非个人服务号 登陆服务号后,...
    sxplus阅读 6,724评论 0 2
  • 在微信服务号开发的时候经常会遇到微信支付的功能实现,通过实际经验自己总结了一下,前端在H5页面调起微信支付有两种办...
    温室寻荒凉阅读 72,900评论 3 41
  • 微信公众号开发 ​前面做过 HG 项目的微信端,里面用到微信扫码、支付、图片选取、拍照、分享的功能。用到 weix...
    Ghnhxg阅读 585评论 1 1
  • “那日的悲伤,与那日的痛苦,连同深爱着这一切的你, 化作了深深烙印在我心中的那苦涩柠檬的香气, 在雨过天晴前都无法...
    黑晨阅读 510评论 4 5

友情链接更多精彩内容