小程序Promise封装网络请求

Promise 是一个对象,是把多层的嵌套回调,变成一长串的.then()方法的链式调用.可以解决异步的问题,本身不能说promise是异步的,

promise是用来解决两个问题的:

1.解决异步回调的问题,代码难以维护, A函数的输出是B函数的输入这种现象.

2. 支持多个并发的请求,获取并发请求中的数据

const app = getApp();
const baseURL = app.globalData.baseUrl;
const Request = (options) => {
  return new Promise((resolve, reject) => {
    wx.showLoading()
    wx.request({
      url: baseURL + options.url || '',
      data: options.data || {},
      method: options.method || 'POST',
      header: {
        'Content-Type': 'application/json; charset=UTF-8',
        "X-Access-Token": app.globalData.usertoken,
      },
      responseType: options.responseType || "",
      timeout: 15000,
      success(res) {
        wx.hideLoading()
        if (res.data.success) {
            resolve(res.data);
        } else {
          wx.showToast({
            title: res.data.message,
            icon: "none"
          })
        };
      },
      fail(res) {
        
        wx.showToast({
          title: '网络开小差了',
          icon: "none"
        })
        reject(res);
      }
    })
  }).then(res => {
    console.log(res); // resolve
}).catch(err => {
    console.log(err); // 等同于接受 上面的reject返回的失败
})
};

module.exports = {
  Request
};

你可能感兴趣的:(小程序Promise封装网络请求)