微信小程序闭包
2021-04-19 本文已影响0人
guaker
好久不写微信小程序,已经忘了差不多了。
这次本来想用Promise
处理数据回调,研究了一会发现还是挺费劲的。
有没有大佬帮我解答下,比如封装微信的网络请求wx.request
,有三个回调success
、fail
、complete
,但是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)
})