小程序 笔记:基于Promise的网络请求

内容
请求基础

// 小程序请求层
module.exports = {
  post,
  get,
  download,
  upload,
}

// LOG控制
let isLog = true
// 网络请求超时
let timeOut = 10 * 1000

// MARK GET请求
function get(event) {
  event.method = 'GET'
  return request(event)
}

// MARK POST请求
function post(event) {
  event.method = 'POST'
  return request(event)
}

// MARK 网络请求
function request(event) {
  //参数可以在这里统一处理
  var data = event.param ? event.param : {}
  data.flag = 'weixin'

  return new Promise((resolve, reject) => {
    wx.request({
      url: event.url,
      data: data,
      method: event.method ? event.method : 'GET',
      dataType: 'json',
      timeout: timeOut,
      responseType: 'text',
      header: {
        'content-type': 'application/json',
      },
      success: function (res) {
        resolve(res.data)
      },
      fail: function (error) {
        reject(error)
      },
      complete: (res) => {
        wx.hideLoading()
        wx.stopPullDownRefresh()
        if (isLog) {
          console.log('接口:', event.url)
          console.log('入参:', data)
          console.log('请求回调:', res.data)
        }
      },
    })
  })
}

// MARK 下载文件
function download(event) {
  var downTask = wx.downloadFile({
    url: event.url,
    fail: () => {},
    complete: (res) => {
      if (isLog) {
        console.log('文件下载:', res)
      }
    },
  })
  // DownloadTask.abort()
  // 中断下载任务

  // DownloadTask.onProgressUpdate(function callback)
  // 监听下载进度变化事件

  // DownloadTask.offProgressUpdate(function callback)
  // 取消监听下载进度变化事件
  return downTask
}

// MARK 上传文件
function upload(event) {
  var upTask = wx.uploadFile({
    url: event.url,
    filePath: event.filePath,
    name: Date.parse(new Date()),
    formData: event.formData,
    complete: (res) => {
      if (isLog) {
        console.log('文件上传:', res)
      }
    },
  })

  // UploadTask.abort()
  // 中断上传任务

  // UploadTask.onProgressUpdate(function callback)
  // 监听上传进度变化事件

  // UploadTask.offProgressUpdate(function callback)
  // 取消监听上传进度变化事件
  return upTask
}

// 小程序接口层

let request = require('request.js')

class InterFace {
  // 电影列表
  static moviceList(event) {
    //此处进行参数处理

    return request.get({
      url: 'http://api.douban.com/' + 'v2/movie/in_theaters',
      param: event,
    })
  }
}

module.exports = InterFace

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值