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

 更新时间:2017年01月16日 14:32:30   投稿:lqh  
这篇文章主要介绍了微信小程序 封装http请求实例详解的相关资料,需要的朋友可以参考下

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

})

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

相关文章

  • 小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)

    小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)

    这篇文章主要介绍了小程序开发页面窗口定位,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 微信小程序 侧滑删除(左滑删除)

    微信小程序 侧滑删除(左滑删除)

    这篇文章主要介绍了微信小程序 侧滑删除(左滑删除)的相关资料,需要的朋友可以参考下
    2017-05-05
  • Promise静态四兄弟实现示例详解

    Promise静态四兄弟实现示例详解

    这篇文章主要为大家介绍了Promise静态四兄弟实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • JS 中Json字符串+Cookie+localstorage

    JS 中Json字符串+Cookie+localstorage

    这篇文章主要介绍了JS 中Json字符串+Cookie+localstorage,Json主要用于前后端交互,是一种数据格式,相较于Xml,使用起来更加便捷,下面文章将对他们详细介绍,需要的朋友可以参考一下
    2021-12-12
  • 前端常见跨域解决方案(全)

    前端常见跨域解决方案(全)

    这篇文章主要介绍了前端常见跨域解决方案的相关内容,包括对跨域的解释,常见跨域场景以及跨域解决方案,内容丰富,需要的朋友可以参考下。
    2017-09-09
  • JS前端使用canvas实现物体的点选示例

    JS前端使用canvas实现物体的点选示例

    这篇文章主要为大家介绍了JS前端使用canvas实现物体的点选示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • 手写实现JS中的new

    手写实现JS中的new

    这篇文章主要介绍JS中的new,new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。下面我们一起来看看我呢很脏具体内容的详细介绍,需要的朋友可以参考一下
    2021-11-11
  • unified如何处理markdown解析器详解

    unified如何处理markdown解析器详解

    这篇文章主要为大家介绍了unified如何处理markdown解析器详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Google 地图获取API Key详细教程

    Google 地图获取API Key详细教程

    本文主要介绍Google 地图API Key,开发Google 地图应用的朋友都知道,在开发的前需要免费的Google 地图API Key,这里详细给出获得API Key的流程,有需要的小伙伴参考下
    2016-08-08
  • 微信小程序 wxapp地图 map详解

    微信小程序 wxapp地图 map详解

    这篇文章主要介绍了微信小程序 wxapp地图 map基础知识的相关资料,并附简单实例,帮助大家学习理解,需要的朋友可以参考下
    2016-10-10

最新评论