小程序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
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容