對于微信小程序中系統(tǒng)提供的大致都是異步方法,所以這樣就會(huì)使頁面加載出現(xiàn)了涌矢,有的數(shù)據(jù)還沒有請求到吱窝。對于這樣的情況使用ES6中提供Promise很好的解決了這個(gè)問題,微信小程序支持ES6拦英,不了解Promise的可以找個(gè)教程看一下蜒什。
- 我們可以在app.js直接使用,也可以創(chuàng)建一個(gè)新的文件把它封裝成一個(gè)方法疤估,我這里就做一個(gè)直接使用的例子:
- 在app.js中創(chuàng)建一個(gè)方法
getOpenId: function () {
let promise = new Promise(function (resolve, reject) {
let self = this;
wx.login({
success: res => {
wx.request({
url: '你的鏈接地址',
method: 'POST',
data: {'傳遞的參數(shù)':'xxx'},
header: {
'Content-Type': 'application/x-www-form-urlencodeds',
'cache-control': 'no-cache'
},
success: function (res) {
resolve(res);
},
fail: function (res) {
reject(res);
}
})
}
})
})
return promise;
}
2.在想要得到請求回來數(shù)據(jù)的界面中
const app = getApp();
onLoad: function (options){
app.getOpenId().then(res => {
if ('輸入自己的判斷條件') {
} else {
}
}).catch(e => {
// 打印一下錯(cuò)誤
console.log(JSON.stringify(e) + "+++++++")
})
}