大家好,欢迎来到IT知识分享网。
最近在做微信小程序,在ajax获取数据的时候卡了很久,需求是在一个ajax中请求完成然后用这个返回数据再去请求另一个ajax,然后把两个数据进行处理(在第一个ajax中).因为微信小程序ajax是异步,所以通常第一个执行完后,第二个才执行完,这样就处理不了数据了.查了半天,总算是解决了这个问题,在此note下:
myAsyncFunc: function () {
return new Promise(function (resolve, reject) { //这儿返回一个Promise对象
console.log("myAsyncFunction done!");//打印输出信息
resolve({ data: "Hello,World" });//储存数据
});
},
myAsyncFunc2: function () {
return new Promise(function (resolve, reject) { //同上
console.log("myAsyncFunction2 done!");
resolve({ data: "I am coming" });
});
},
doit: async function () { //在需要同步方法的地方加上 async
var res = await this.myAsyncFunc(); //在需要阻塞同步的方法前加上 await
console.log(" res: " + res.data);
var res2 = await this.myAsyncFunc2();
console.log(" res2: " + res2.data);
return res2.data + res.data ;
},
IT知识分享网
IT知识分享网 onLoad: function(options) {
this.doit().then(res => {
console.log(' onLoad: ' + res);
})
}
打印结果
最基本的例子就在这儿啦.
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6933.html