微信小程序 封装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 相关文章推荐
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
Dec 29 Javascript
js控制div及网页相关属性的代码
Dec 19 Javascript
JS获取html对象的几种方式介绍
Dec 05 Javascript
js整数字符串转换为金额类型数据(示例代码)
Dec 26 Javascript
常规表格多表头查询示例
Feb 21 Javascript
JavaScript的null和undefined区别示例介绍
Sep 15 Javascript
3种js实现string的substring方法
Nov 09 Javascript
JavaScript 实现 Tab 点击切换实例代码
Mar 25 Javascript
基于AngularJS的拖拽文件上传的实例代码
Jul 15 Javascript
Vue Router去掉url中默认的锚点#
Aug 01 Javascript
JS数组扁平化、去重、排序操作实例详解
Feb 24 Javascript
JavaScript流程控制(循环)
Dec 06 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 强制下载文件代码
2010/10/24 PHP
php获取随机数组列表的方法
2014/11/13 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
javascript 实现键盘上下左右功能的小例子
2013/09/15 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
关于vue面试题汇总
2018/03/20 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
2019/02/22 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
Python更新数据库脚本两种方法及对比介绍
2017/07/27 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
学校募捐倡议书
2014/05/14 职场文书
教导主任竞聘演讲稿
2014/05/16 职场文书
四风查摆剖析材料
2014/10/10 职场文书
护士求职简历自我评价
2015/03/10 职场文书
Oracle更换为MySQL遇到的问题及解决
2021/05/21 Oracle
vue实现移动端div拖动效果
2022/03/03 Vue.js