微信小程序 封装http请求实例详解
程序员文章站
2023-11-23 15:53:16
微信小程序 封装http请求
最近看了一下微信小程序,大致翻了一下,发现跟angular很相似的,但是比angular简单的很多具体可参考官方文档
https://mp...
微信小程序 封装http请求
最近看了一下微信小程序,大致翻了一下,发现跟angular很相似的,但是比angular简单的很多具体可参考官方文档
https://mp.weixin.qq.com/debug/wxadoc/dev/framework/app-service/page.html?t=2017112
下面将封装http请求服务部分的服务以及引用部分
// 本服务用于封装请求 // 返回的是一个promisepromise var sendrrquest = function (url, method, data, header) { var promise = new promise(function (resolve, reject) { wx.request({ url: url, data: data, method: method, header: header, success: resolve, fail: reject }) }); return promise; }; module.exports.sendrrquest = sendrrquest
在utils文件中创建文件requestservice.js文件
下边是在page.js文件中引用部分代码
// 界面一般通过使用page函数注册一个界面,接收一个object对象,该对象指定了初始化数据/生命周期函数函数/事件处理函数 // data 存放页面初始化数据数据,类似angular的的$scope // onload 生命周期函数 监听页面加载 // onready 生命周期函数 监听页面首次渲染完成完成 // onshow 生命周期函数 监听界面显示 // onhide 生命周期函数 监听界面隐藏 // onunload 生命周期函数 监听页面卸载 // onpulldownrefresh 页面相关事件 监听用户下拉事件 // onreachbottom 页面上拉到达底部触发的事件 // onshareappmessage 点击左上方分享事件 var testservice = require('../../utils/testservice.js') var request = require('../../utils/requestservice.js') page({ data:{ test:'123', positionlist:[] }, onload:function(){ }, onready: function () { var that = this; testservice.test('a'); testservice.agerntest('a'); var url = 'https://webapi.tianjihr.com/position/searcher?sort=-refresh_time&offset=10&limit=10'; request.sendrrquest(url, 'get', {}, {}) .then(function (response) { that.setdata({ positionlist:response.data.list }); console.log(response); }, function (error) { console.log(error); }); }, onpulldownrefresh: function () { }, onshareappmessage: function () { // 微信分享需要的配置参数 return { title: '自定义分享标题', desc: '自定义分享描述', path: '/page/user?id=123' } // console.log(1); } });
上边的代码和js代码有不同的代码需要注意
1.异步处理方式改变
原有方式是:
var promise = new promise(); promise.resolve('成功'); promise.reject('失败'); return promise;
现有的方式:
return new promise(function (resolve, reject) { resolve('成功'); reject('失败'); })
2.在promise成功或者失败的回调中不能直接赋值,如:
var that = this; test() .then(function(){ that.data.test=''; },function(){ })
需要使用如下方式:
var that = this; test() .then(function(){ that.setdatat={ test:123 }; },function(){ })
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
上一篇: 关于PHP的curl开启问题探讨