小程序中的typeof cb == “function”解说

2023-05-19 15:09:29 浏览数 (1)

一个同事在维护(审核)我的微信小程序代码时,走过来问我为什么在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,然后发到接口进行数据交换,也没毛病吧。

为什么这样做,就是因为没有用云函数咯,如果能用云函数就不这么麻烦了。

好吧。。大家时间宝贵,不费了。。再见。

0 人点赞