小程序api实现promise封装过程解析


Posted in Javascript onNovember 21, 2019

这篇文章主要介绍了小程序api实现promise封装过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

微信小程序和支付宝小程序的api封装方法是一样的,都是外部新建一个js,使用module.exports导出,要注意的是,最好使用post请求,虽然get请求没什么不好,主要是好修改。这里使用的MD5进行了token加密,最好还是把md5.js单独写下来(MD5函数js)

代码如下

var app = getApp(); // 引入app.js里初始化数据
var MD5 = require('./md5.js')
function ApiFun (url,params) {
 var param = {}
 let timeStamp = Number(new Date()) // 时间戳
 let Token = "*******"
 return new Promise((resolve, reject,next) => {
  my.request({ // 支付宝小程序是my,微信小程序是wx
   url: app.globalData.baseUrl + url, // 域名+接口名称
   method: "POST",
   data: params, // 参数
   success: resolve, // 成功结果
   headers: {
    "Content-Type": "application/x-www-form-urlencoded"
   }, // post请求头
   fail: reject, // 失败结果
   complete: next // 成功或者失败都会调用的结果
  })
 })
}
module.exports = {
 ajaxApi: function (url, params) { // 导出
  return ApiFun(url, params).then(res => res.data)
 }
}

使用方法在page页面的js中

var app = getApp();
var api =require('/pages/utils/api.js')
Page({
  onShow() {
    api.ajaxApi('/**/list',{
      page:1,
      prePage:100
    }).then(res => {
       console.log(res)
    })
  }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery实现自动调整字体大小的方法
Jun 15 Javascript
ArtEditor富文本编辑器增加表单提交功能
Apr 18 Javascript
Vue.js结合bootstrap实现分页控件
Mar 10 Javascript
SeaJS中use函数用法实例分析
Oct 10 Javascript
利用vue+elementUI实现部分引入组件的方法详解
Nov 22 Javascript
js实现关闭网页出现是否离开提示
Dec 07 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
Sep 05 Javascript
vue+element树组件 实现树懒加载的过程详解
Oct 21 Javascript
详解Vue中的Props与Data细微差别
Mar 02 Javascript
vue模块移动组件的实现示例
May 20 Javascript
vue项目中播放rtmp视频文件流的方法
Sep 17 Javascript
vue中activated的用法
Jan 03 Vue.js
如何基于原生javaScript生成带图片的二维码
Nov 21 #Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
Nov 21 #Javascript
vue element 中的table动态渲染实现(动态表头)
Nov 21 #Javascript
浅谈Vue SSR中的Bundle的具有使用
Nov 21 #Javascript
webpack常用构建优化策略小结
Nov 21 #Javascript
Vue 中 filter 与 computed 的区别与用法解析
Nov 21 #Javascript
js实现课堂随机点名系统
Nov 21 #Javascript
You might like
一个简单的PHP投票程序源码
2007/03/11 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
2017/06/13 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
IE6下opacity与JQuery的奇妙结合
2013/03/01 Javascript
javascript实现颜色渐变的方法
2013/10/30 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
addeventlistener监听scroll跟touch(实例讲解)
2017/08/04 Javascript
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
jquery传参及获取方式(两种方式)
2020/02/13 jQuery
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
学校课外活动总结
2014/05/08 职场文书
经典团队口号
2014/06/06 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
Pytorch反向传播中的细节-计算梯度时的默认累加操作
2021/06/05 Python
vue elementUI批量上传文件
2022/04/26 Vue.js