微信小程序Promise解决回调地狱方法

588 阅读1分钟

回调地狱:代码完全一致,但是代码太过丑陋不方便维护,一个异步请求套着一个异步请求,一个异步请求依赖于另一个的执行结果,使用回调的方式相互嵌套。 image.png

  • 解决回调地狱使用Promise,在js页面return new一个Promise,
  • resolve表示请求已完成
  • reject请求失败,状态表示拒绝
  • 用.then的方式获取 resolve成功数据
  • 用.catch来接收reject返回错误信息
  • 需要多次使用时在后面一直添加.即可,免去不停调用的麻烦
 /**
   * 生命周期函数--监听页面加载
   */
onLoad: function (options) {
this.promiseFn()接收实例化对象     第二步
.then(data=>{
   //console.log(data) 
   return data;
})

.catch(err=>{
    console.log(err)
  })
  
 .then(data2=>{
    console.log(data2)
  return data2;
})
  },
  
  第一步 写一个方法promiseFn()
promiseFn:function(){ /* 返回一个promise实例化对象 */
return new Promise((resolve,reject)=>{
  wx.request({
       url: '',接口
   
   成功请求
 success:(res)=>{
    resolve(res.data)
  },
  失败请求
  fail:(err)=>{
    reject(err)
  }
})
})
},