獲取openid
我是直接使用小程序雲函數中的login函數,在開發中,我是直接寫在主頁面的js中,很多函數都需要openid的值,有時候能獲取到,有時候又不行,調試之後發現是獲取getopenid的函數是異步,不能通過onLoad()
方法直接獲取,當onload函數啓動後,下面直接順序執行,openid還沒獲取到,下面的函數已經在執行了,這就是異步問題了。
解決方法
我們要在APP.js
中調用獲取openid
雲函數
App({
onLaunch: function () {
if (!wx.cloud) {
console.error('請使用 2.2.3 或以上的基礎庫以使用雲能力')
} else {
wx.cloud.init({
traceUser: true,
})
wx.cloud.callFunction({
name: 'login',
data: {},
success: res => {
console.log('[login] user openid: ', res.result.openid)
this.globalData.openid = res.result.openid
},
fail: err => {
console.error('獲取用戶openid失敗', err)
}
})
}
},
//全局數據
globalData: {},
})