一个同事在维护(审核)我的微信小程序代码时,走过来问我为什么在app.js里面一个获取用户openid的函数,应用typeof cb == “function” 来判断是不是函数类型。。好吧,我就内心的讲解一下吧。
代码语言:javascript复制getopenid: function (cb) {
var that = this;
if (this.globalData.openid) {
typeof cb == "function" && cb(this.globalData.openid)
} else {
wx.login({
success: res => {
let code = res.code;
wx.request({
url: 'https://xxxx/api/WX/GetOpenId',
method: "POST",
data: {
"WXOpendID": code,
"WXAppID": "wx496dc0e3f80a0a6f",
},
success: function (response) {
if (response.data != null && response.data != "err") {
wx.setStorageSync('openid', response.data)
that.globalData.openid = response.data
typeof cb == "function" && cb(that.globalData.openid)
}
},
fail: function (error) {
console.log('获取openid失败');
}
})
}
})
}
},
typeof cb == “function” &&cb(this.globalData.openid)
首先这个判断这个cb类型是否函数,如果是就执行。没毛病吧~
至于后面就调用login获取code,然后发到接口进行数据交换,也没毛病吧。
为什么这样做,就是因为没有用云函数咯,如果能用云函数就不这么麻烦了。
好吧。。大家时间宝贵,不费了。。再见。