微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用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: {}
  })
}
// 首先在页面js中引入api
import { newSongs } from '../../api/songs'

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

// 调用实例

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐