微信小程序 - 用promise封装wx.request

简介

Promise 对象表示异步操作最终的完成(或失败)以及其结果值。在javascript中,当发起异步方法调用时候,要想在调用方线程获取异步结果,可以借助promise对象实现。

promise同时支持all,any等api。本文将会对wx.request进行封装,以获取异步调用的结果。

具体代码

utils/http-client.js

javascript 复制代码
const baseURL = 'http://demo.api.xxx.com';


function request(params = { methods, url, data }) {
  return  new Promise(function (resolve,reject) {
    wx.request({
      url: baseURL + params.url,
      method: params.method,
      data: params.data ? JSON.stringify(params.data) : null,
      header: { 
        'Content-Type': 'application/json',
        'accessToken': ''
       },
      timeout: 5000,
      success(res) { // 有响应
        if (res.statusCode == 200) {
          if (res.data.code == 0) {
            resolve(res.data);
          } else { // biz exception
            reject(res,data);
          }
        } else { // http exception
          reject();
        } 

      },
      fail (err) { // 无响应, io
        reject(err)
      }
    })
  })
}

module.exports = {
  request: request
}
相关推荐
2501_9151063210 小时前
iOS 抓不到包怎么办?从 HTTPS 代理排查到 TCP 数据流捕获的全链路解决方案
android·tcp/ip·ios·小程序·https·uni-app·iphone
游戏开发爱好者810 小时前
APP上架苹果应用商店经验教训与注意事项
android·ios·小程序·https·uni-app·iphone·webview
hyswl66612 小时前
数字货物搬家小程序
python·小程序
郭俊强13 小时前
小程序RSA、AES加密
小程序
Dest1ny-安全13 小时前
CTF入门:国内线上CTF比赛时间及部分题目资源
网络·安全·web安全·微信小程序·php
2501_9160074714 小时前
苹果应用商店上架的系统逻辑,从产品开发到使用 开心上架 上架IPA 交付审核流程
android·ios·小程序·https·uni-app·iphone·webview
kyh100338112015 小时前
去水印微信小程序搭建
大数据·微信小程序·去水印·短视频去水印·去水印微信小程序
2501_9160088915 小时前
Python抓包HTTPS详解:Wireshark、Fiddler、Charles等工具使用教程
python·ios·小程序·https·uni-app·wireshark·iphone
刻刻帝的海角15 小时前
uniapp引入qqmap-wx-jssdk实现微信小程序端获取用户当前位置
微信小程序·小程序·uni-app
2501_9160088916 小时前
uni-app 上架到 App Store 的项目流程,构建、打包与使用开心上架(Appuploader)上传
android·ios·小程序·https·uni-app·iphone·webview