小程序 笔记:基于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
    评论
小程序笔记demo是一款基于小程序开发的云笔记应用程序。它可以帮助用户在小程序平台上轻松地记录、管理和分享笔记。 首先,在小程序笔记demo中,用户可以创建多个笔记本,并将笔记按照不同的分类进行整理。这样,用户可以更好地组织和查找自己的笔记内容。 其次,该应用提供了丰富的编辑功能。用户可以在笔记中添加文本、图像、链接等不同的媒体元素。而且,用户可以对文本内容进行字体、大小、颜色、对齐等样式的调整,以及对图像进行裁剪、旋转和滤镜处理等操作,使笔记内容更加丰富和生动。 此外,小程序笔记demo还提供了数据同步的功能。不论用户是在手机、平板还是电脑上,只要登录同一账号,即可实现笔记数据的同步和共享。这意味着用户可以随时随地访问自己的笔记,并且与他人共享自己的笔记内容,便于协同工作和知识分享。 另外,该应用还具备创新的云储存功能。小程序笔记demo将用户的笔记数据存储在云端,有效保障了数据的安全性和可靠性。即使用户更换设备或者卸载应用,也可以轻松地恢复之前的笔记数据。 总之,小程序笔记demo是一款便捷、高效的云笔记应用程序。它通过提供多样化的编辑和同步功能,为用户提供了更好的笔记管理和分享体验。无论是个人学习、工作办公还是团队协作,都是一款非常实用的工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值