微信小程序 封装http请求实例详解
微信小程序封装http请求
最近看了一下微信小程序,大致翻了一下,发现跟angular很相似的,但是比angular简单的很多具体可参考官方文档
https://mp.weixin.qq.com/debug/wxadoc/dev/framework/app-service/page.html?t=2017112
下面将封装http请求服务部分的服务以及引用部分
//本服务用于封装请求
//返回的是一个promisepromise
varsendRrquest=function(url,method,data,header){
varpromise=newPromise(function(resolve,reject){
wx.request({
url:url,
data:data,
method:method,
header:header,
success:resolve,
fail:reject
})
});
returnpromise;
};
module.exports.sendRrquest=sendRrquest
在utils文件中创建文件requestService.js文件
下边是在page.js文件中引用部分代码
//界面一般通过使用Page函数注册一个界面,接收一个Object对象,该对象指定了初始化数据/生命周期函数函数/事件处理函数
//data存放页面初始化数据数据,类似angular的的$scope
//onLoad生命周期函数监听页面加载
//onReady生命周期函数监听页面首次渲染完成完成
//onShow生命周期函数监听界面显示
//onHide生命周期函数监听界面隐藏
//onUnload生命周期函数监听页面卸载
//onPullDownRefresh页面相关事件监听用户下拉事件
//onReachBottom页面上拉到达底部触发的事件
//onShareAppmessage点击左上方分享事件
vartestService=require('../../utils/testService.js')
varrequest=require('../../utils/requestService.js')
Page({
data:{
test:'123',
positionlist:[]
},
onLoad:function(){
},
onReady:function(){
varthat=this;
testService.test('a');
testService.agerntest('a');
varurl='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.异步处理方式改变
原有方式是:
varpromise=newPromise();
promise.resolve('成功');
promise.reject('失败');
returnpromise;
现有的方式:
returnnewPromise(function(resolve,reject){
resolve('成功');
reject('失败');
})
2.在promise成功或者失败的回调中不能直接赋值,如:
varthat=this;
test()
.then(function(){
that.data.test='';
},function(){
})
需要使用如下方式:
varthat=this;
test()
.then(function(){
that.setDatat={
test:123
};
},function(){
})
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
