這里使用了Promise解決方案伞剑,Pomise ES6中的一個對象斑唬,從它可以獲取異步操作的消息。
解決了當index.js需要使用openid時黎泣,openid還未得到這個問題恕刘。
app.js
1、定義一個獲取Openid的方法抒倚,此方法返回一個promise對象褐着。
2、在onLaunch函數(shù)中調用此方法托呕,并將其賦值給一個全局變量含蓉,供后續(xù)頁面調用
onLaunch: function () {
//初始化的時候調用getOpenid
this.Promise = this.getOpenid()
},
Promise:null,
getOpenid:function(){
var promise = new Promise(function (resolve, reject) {
// ... some code
setTimeout(function () {
resolve('1234567890');
}, 5000);
});
return promise;
}
})```
## index.js
1、在onLoad函數(shù)中通過調用promise對象的then方法以獲取回調函數(shù)返回的數(shù)據(jù)value
var app = getApp()
Page({
onLoad: function () {
var that = this
//使用Promise
app.Promise.then(function (value) {
// success
console.log('獲取openid成功:'+value)
that.setData({
openid:value
})
}, function (error) {
// failure
});
}
})```