小程序之接收异步方法的返回结果
2018-03-17 11:59
363 查看
用代码演示
class Home{ constructor(){ } getBannerData(id){ wx.request({ url: 'http://z.cn/index.php/api/v1/banner/'+id, method:'GET', success:function(res){ console.log(res); return res; } }) } } export {Home};
以上代码中console.log出来的是正常的返回结果
// pages/home/home.js import {Home} from 'home-model.js'; var home = new Home(); Page({ /** * 页面的初始数据 */ data: { }, onLoad:function(){ this._loadData(); }, // _ 下划线来标识他是一个私有的方法 _loadData:function(){ var id = 1; var data = home.getBannerData(id); console.log(data); }, })
接收到的结果却是undefined,是因为所有的request均为异步请求,不会阻塞程序运行,用户体验更好
接收异步方法的返回结果的解决办法就是采用回调函数的方法
class Home{ constructor(){ } getBannerData(id,callback){ wx.request({ url: 'http://z.cn/index.php/api/v1/banner/'+id, method:'GET', success:function(res){ //console.log(res); // return res; callback(res); } }) } } export {Home};
// pages/home/home.js import {Home} from 'home-model.js'; var home = new Home(); Page({ /** * 页面的初始数据 */ data: { }, onLoad:function(){ this._loadData(); }, // _ 下划线来标识他是一个私有的方法 _loadData:function(){ var id = 1; var data = home.getBannerData(id,this.callBack); // console.log(data); }, //回调函数 callBack:function(res){ console.log(res); }, })
相关文章推荐
- ACE_Future实现了单写多读模式,可以用来异步方法调用的结果返回
- Python学习之使用Future对象来异步返回结果方法详解
- 三种异步编程模型(APM)获取异步返回结果的方法
- jquery .ajax方法 异步表单,接收服务器返回的数据
- 让FLASH接收网页传过来的参数和动态调用外部脚本程序返回结果
- Linux C 程序执行 shell 命令并获取返回结果的方法
- 在程序中调用外部程序,用process返回命令执行结果以及抓取错误信息的方法
- C#执行CMD命令并接收返回结果的实现方法
- ACE_Future实现了单写多读模式,可以用来异步方法调用的结果返回
- C#执行CMD命令并接收返回结果的实现方法
- 使用java传参调用exe并且获取程序进度和返回结果的一种方法
- 使用java传参调用exe并且获取程序进度和返回结果的一种方法
- Dubbo consumer端接收服务端返回结果异步转同步机制及超时处理
- 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
- Python中让MySQL查询结果返回字典类型的方法
- 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
- PHP ajax 异步执行不等待执行结果的处理方法
- java 泛型方法 返回泛型结果
- [异步][事务][流程][设计]同步当场处理并返回处理结果,异步后怎样返回. 怎样解决?
- android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果