当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 微信小程序 封装http请求实例详解

微信小程序 封装http请求实例详解

2019年03月29日  | 移动技术网IT编程  | 我要评论

微信小程序 封装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(){

})

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网