微信小程序用Promise解决wx.request的异步时序问题
目录
微信小程序用Promise解决wx.request的异步时序问题
在app.js中写一个公用方法(例如获取用户信息),在页面中要根据用户信息变动页面显示内容。
由于网络和异步的问题,经常发生数据获取在改动页面显示内容的代码之后。
为了解决这个时序异步的问题,采用了Promise。
注意:网上查到微信小程序已于2017.12支持Promise,不需要在额外引入js文件等操作
APP.js:
App({
globalData:{
UserData: ''
},
//只在程序启动时执行一次,获取用户信息以及ID
onLaunch: function (Object) {
var that = this;
},
//获取用户信息
GetUserData:function(){
var that = this;
return new Promise(function (resolve, reject) {
wx.request({
url: 'XXXX',
method: 'POST',
data: {略},
header: {
'content-type': 'application/json; charset=utf-8' // 默认值
},
success: function (res) {
that.globalData.UserData= res.data;
resolve();
}
});
});
}
})
index.js:
onLoad: function() {
var that = this;
//调用
app.GetUserData().then((res) => {
that.setData({ userdata: app.globalData.GetUserData});
});
}