使用promise封装微信we.request进行数据请求

wx.request的进一步加工

  • 先来看一下主要目录结构

  • siteinfo.js中的内容为接口基本信息
// siteinfo.js
module.exports = {
  name: '接口说明',  // 可不写
  site_root: '公共接口'  // 公共接口地址  如:http://123.123.123.123:3000
}
  • request.js中为使用promise封装的wx.request
// request
/**
 *
 * @param {参数} params
 */
function request (params) {
  let promise = new Promise ((resolve, reject) => {
    const baseURL = require('./siteinfo')
    // 开启标题栏加载效果
    wx.showNavigationBarLoading()
    wx.request ({
      url: baseURL.site_root + params.url,
      data: params.data,
      methods: params.methods === 'post' ? 'post' : 'get',
      headers: {
        'content-type': 'application/json'
      },
      success (res) {
        resolve (res)
      },
      fail (err) {
        reject (err)
      },
      complete (res) {
        // 关闭标题栏加载效果
        wx.hideNavigationBarLoading()
      }
    })
  })
  return promise
}

export default request
  • api接口的进一步封装
// api/songs.js
import request from '../request'

// 推荐最新音乐
export function newSongs () {
  return request ({
    url: '/personalized/newsong',
    methods: 'GET',
    data: {}
  })
}
  • 在页面中调用api接口返回数据
// 首先在页面js中引入api
// 在pages/main/main.js中引入使用
import { newSongs } from '../../api/songs'

// 直接使用
newSongs ().then (res => {
    // 请求成功
    if (res && res.data.code === 200) {
        console.log(res.data.result)
    }
}).catch (rej => {
    // 请求失败
    console.log(rej)
})

// 调用实例

原文地址:https://www.cnblogs.com/Yancyzheng/p/12108773.html

时间: 2024-08-30 02:52:50

使用promise封装微信we.request进行数据请求的相关文章

基于Promise封装uni-app的request方法,实现类似axios形式的请求

https://my.oschina.net/u/2428630/blog/3004860 uni-app框架中 安装(项目根目录下运行) npm install uni-request --save 文件中引用 import uniRequest from 'uni-request'; 使用方法 请求方法的别名 uniRequest.request(config) uniRequest.get(url[, config]) uniRequest.delete(url[, config]) un

微信小程序使用promise封装异步请求

一:开发了一段时间的微信小程序,发现里面的API都是这样的: wx.showModal({ title: '提示', content: '这是一个模态弹窗', success: function(res) { if (res.confirm) { console.log('用户点击确定') } else if (res.cancel) { console.log('用户点击取消') } } }) 如果代码多了逻辑多了,就会出现所谓的回调地狱. wx.showModal({ title: '提示'

微信小程序数据请求方法wx.request小测试

微信小程序数据请求方法 wx.request wxml文件: <view> <textarea value="{{textdata}}"/> </view> <button bindtap="RequestData" value="Button">Button</button> 主要是一个按钮,点击后将请求的数据写入到textarea中 js文件: Page({ data:{ textd

React Native 网络请求封装:使用Promise封装fetch请求

React Native中虽然也内置了XMLHttpRequest 网络请求API(也就是俗称的ajax),但XMLHttpRequest 是一个设计粗糙的 API,不符合职责分离的原则,配置和调用方式非常混乱,而且基于事件的异步模型写起来也没有现代的 Promise 友好.而Fetch 的出现就是为了解决 XHR 的问题,所以ReactNative官方推荐使用Fetch API.http://blog.csdn.net/withings/article/details/71331726 fet

ES6之Promise封装ajax()

什么是异步? 同步:一定要等任务执行完了,得到结果,才执行下一个任务. 异步:不等任务执行完,直接执行下一个任务. 为什么要用promise? Promise的出现主要是解决地狱回调的问题,比如你需要结果需要请求很多个接口,这些接口的参数需要另外那个的接口返回的数据作为依赖,这样就需要我们一层嵌套一层,但是有了Promise 我们就无需嵌套 Promise的本质就是分离了异步数据获取和业务逻辑 所有代码 Promise/A+规范 $.Ajax()中的promise 如果不使用promise,$.

Android封装数据请求AsyncHttpClient 和 Volley

将 AsyncHttpClient 和 Volley 的jar导入的libs目录下面, 导入遇见的问题,导入后到时没有对应的类,,解决方法,在你导入的包下面右击点击add to Library..就可以了.是不是很菜啊.我菜我快乐.. 1 NetRequest 封装的数据请求,,跟加载图片 2 NetUtil 配置请求数据.. 3 macro 存放的是宏.. 4 HomepageGross 跟 HomepageRollAndData是数据model, 5 RequestResultModel 请

微信扫描支付订单数据生成类[模式二]

* *必要条件: *1.微信公共号 *2.微信公共号APPID *3.微信公共号 [微信支付] 绑定的 商户号MCH_ID *4. 微信公共号 商户支付密钥 * * 支付流程: * 1.调用统一下单,取得code_url,生成二维码 * 2.用户扫描二维码,进行支付 * 3.支付完成之后,微信服务器会通知支付成功 * 4.在支付成功通知中需要查单确认是否真正支付成功 业务流程说明: (1)商户后台系统根据用户选购的商品生成订单. (2)用户确认支付后调用微信支付[统一下单API]生成预支付交易:

java 接口自动化测试之数据请求的简单封装

我们自己用java写接口自动化测试框架或者做个接口自动化测试平台的话,是需要自己进行相关的请求的,因此我们需要简单的封装下httpclient,我新建了一个http工具类,将get方法和post方法进行了一个简单的封装. 如果是开发的话,比如APP开发,无论是iOS还是Android,是需要将数据请求进行十分严密的封装的,因为需要对各种网络状态,请求状态做相应的判断处理,因为需要通过这些判断来做出相应的UI交互界面来给用户提示,那么我们做接口测试的话是不需要这么严密的,因为测试的前提就是要保证测

Android-Volley网络通信框架(二次封装数据请求和图片请求(包含处理请求队列和图片缓存))

1.回想 上篇 使用 Volley 的 JsonObjectRequest 和 ImageLoader 写了 电影列表的样例 2.重点 (1)封装Volley 内部 请求 类(请求队列,数据请求,图片请求,图片缓存) (2)封装 Response.Listener 和 Response.ErrorListener 回调函数 (3)用法 3.文件夹介绍 3.1 GsonRequset.java 自己定义Gson请求,直接将 Json字符串  实例化为 对象 3.2 VolleyApplicatio