- 需求的场景描述(希望解决的问题)
onLoad: function (options) {
var that = this;
wx.getStorage({
key: "id",
success: function(res) {
that.setData({
id: id
})
}
})
that.showInfos();
},
showInfos: function(e) {
console.log(this.data.id);
}
如上代码,运行后that.showInfos()会先执行,wx.getStorage后执行,那么久无法获得预期的id值,请问如何保证让wx.getStorage先执行,that.showInfos()后执行?
- 希望提供的能力
onLoad()里先执行wx.getStorage, 再执行that.showInfos()。
用new Promise,比回调好,自己百度去查查,很多的
把that.showInfos()丢到wx.getStorage的success方法里面去执行不就可以了吗,或者用wx.getStorageSync。。。
wx.getStorage为异步操作,可以改成wx.getStorageSync即可
想想也是哦,老铁们这么一说,我似乎有点迷糊了。
那微信小程序有什么方法可以实现方法的顺序执行?
这样试试呢?
onLoad: function (options) {
var that = this;
wx.getStorage({
key: "id",
success: function(res) {
that.setData({
id: id
})
that.showInfos(); //放在success方法里面执行
}
})
},
showInfos: function(e) {
console.log(this.data.id);
}
放在wx.getStorage成功回调里面!!