微信小程序闭包

好久不写微信小程序,已经忘了差不多了。
这次本来想用Promise处理数据回调,研究了一会发现还是挺费劲的。
有没有大佬帮我解答下,比如封装微信的网络请求wx.request,有三个回调successfailcomplete,但是Promise只有两个回调参数,这种情况该如何处理。

var promise = new Promise(function(resolve, reject) {

})

还是老老实实用回函数回调,又忘了之前怎么写的了,记录留存闭包写法。

还是使用云函数获取openId

/* 获取openId */
  getOpenId: function (callback) {
    //查询本地openId
    let openId = wx.getStorageSync('openId')

    //回调
    if (openId) {
      callback(openId)
      return
    }
    
    //云函数获取openId
    wx.cloud.callFunction({
      name: 'getContext'
    }).then(res => {
      app.hideLoading()

      let openId = res.result.openId

      //缓存openId
      wx.setStorageSync('openId', openId)

      //回调
      callback(openId)
    }).catch(error => {

    })
  }

调用:

//获取openId
this.getOpenId(function (openId) {
  console.log(openId)
})

你可能感兴趣的:(微信小程序闭包)