微信小程序app.js 全局获取云函数openid

app.js

getOpenid: null,
App({
  onLaunch: function () {
    //云函数记录用户访问记录
    if (!wx.cloud) {
      console.error('请使用 2.2.3 或以上的基础库以使用云能力')
    }
    else {
      wx.cloud.init({
        traceUser: true,
      })

      this.getOpenid = (function(that){
        return new Promise((resolve, reject) =>{
          wx.cloud.callFunction({
            name: 'getOpenid',
            data: {},
            success: res => {
              that.globalData.openid = res.result.openid
              resolve(res.result.openid)
            },
            fail: err => {
              console.error('[云函数] [getOpenid] 调用失败', err)
            }
          })
        })
      })(this)


    }



  
  },

需要使用openid的页面

//获取应用实例
const app = getApp()
Page({
...
...
...
...
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
      //获取全局OPENID
      app.getOpenid.then(openid => {
        console.log(openid, '全局得到的OPENID')
        this.setData({
        openid: openid
        })
        wx.setStorageSync('openid', openid) //把用户openid信息缓存到本地
        })


  },