JS之用ES6 Promise解决回调地狱(这里以小程序为例)

首先 写一个请求的方法,如:

  /**
   * 银行窗口
   * 你需要给我提供相关的相关参数我帮你提交到服务器上
   * 我会给你一个等待区的编号给你 你去等待区等待,我处理完成会去等待区通知你
   * @param 相关参数
   */
  submit: function(data) {
    return new Promise((success, error) => {
      wx.request({
        url: CONFIG.API_URL.course_save, // 仅为示例,course_save 为配置文件config.js里的一个请求路径
        data: data,
        method: 'post',
        header: {
          'content-type': 'application/json' // 默认值
        },
        success(res) {
          //数据已经提交到服务器了,res是服务器返回的结果 现在将去等待区交给客户
          // success是等待区的客户
          success(res.data)
        }
      })
    })
  },

  在需要调用的方法里 写调用这个方法

    //等待区的地点 
    this.submit(data).then((data) => {
      //这里是等待区 银行业务员已经帮你处理完成 并将处理结果告诉你了
      wx.showLoading({
        title: '成功',
      })
      setTimeout(function() {
        wx.hideLoading();
        wx.reLaunch({
          url: '/pages/index/index',
        })
      }, 2000)
    })

  then后面的代码意思是等待submit 方法请求成功 返回数据后的处理代码

原文地址:https://www.cnblogs.com/yuobey/p/10499472.html