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


Posted in Javascript onJanuary 16, 2017

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

})

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

Javascript 相关文章推荐
jQuery ready函数滥用分析
Feb 16 Javascript
JS正则中的RegExp对象对象
Nov 07 Javascript
jQuery extend 的简单实例
Sep 18 Javascript
JavaScript第一篇之实现按钮全选、功能
Aug 21 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
Sep 04 Javascript
JS实现鼠标移上去显示图片或微信二维码
Dec 14 Javascript
原生js实现图片放大缩小计时器效果
Jan 20 Javascript
vue使用stompjs实现mqtt消息推送通知
Jun 22 Javascript
67 个节约开发时间的前端开发者的工具、库和资源
Sep 12 Javascript
深入浅析Vue 中 ref 的使用
Apr 29 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
Sep 28 Javascript
H5 js点击按钮复制文本到粘贴板
Nov 19 Javascript
详解vue-validator(vue验证器)
Jan 16 #Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
Jan 16 #Javascript
webpack入门必知必会
Jan 16 #Javascript
angular+ionic 的app上拉加载更新数据实现方法
Jan 16 #Javascript
jQuery实现简易的输入框字数计数功能示例
Jan 16 #Javascript
谈谈Vue.js——vue-resource全攻略
Jan 16 #Javascript
Javascript的this用法
Jan 16 #Javascript
You might like
php trim 去除空字符的定义与语法介绍
2010/05/31 PHP
php解析json数据实例
2014/08/19 PHP
自定义session存储机制避免会话保持问题
2014/10/08 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
2018/03/31 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
elementUI 设置input的只读或禁用的方法
2018/10/30 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
跟老齐学Python之Import 模块
2014/10/13 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
Python打包可执行文件的方法详解
2016/09/19 Python
python文件名和文件路径操作实例
2017/09/29 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
美国皮靴公司自1863年:The Frye Company
2016/11/30 全球购物
母亲80寿诞答谢词
2014/01/16 职场文书
《白鹅》教学反思
2014/04/13 职场文书
个人债务授权委托书
2014/10/17 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技
Python代码实现双链表
2022/05/25 Python