记于:2024-03-11 上午
地点:浙江省·温州市·家里
天气:下雨
背景#
业务流程上需要等微信登陆(wx.login)后再执行后续操作,但是wx.login是异步的,如果简单地使用回调的方式,代码将会不简洁,同时也为了职责分离(将登陆与业务逻辑解耦),所以需要一个同步的方案。
思路#
根据网上的一些方案,比如使用Promise、async/await等,试过都失败了(可能是因为对这些技术不太熟);
最终选择从业务流程上入手,加一个加载页可以解决;
具体地:添加一个加载/入口(entry)页作为第一页面,在其中执行wx.login,成功则跳转到首页,如果失败则停留在加载页,并提示点击重新登陆。
代码#
entry.wxml
1 | <!--pages/entry/entry.wxml--> |
entry.js
1 | // pages/entry/entry.js |