model层在对请求返回的数据二次加工后再返回给page,Promise怎么实现?

来源:11-7 Promise重构 三 对象解构

_Lomyo_O

2018-09-19

//ClassicModel.js

getLatest(){
    return this.request({
      url: 'classic/latest'
    }).then((res)=>{
      this.lastIndex = res.index
      this.currentIndex = this.lastIndex 
      return new Promise((resolve)=>{
        resolve(res)
      })
    })
  }

在ClassicModel封装的getLatest函数,拿到网络返回的数据后,需要记录下索引,然后再把数据返回给page页面,我这样写正确吗,这样第一层Promise的reject回调是不是就没了?
像这种需求使用Promise怎么实现好呢

写回答

1回答

runzx

2018-09-20

getLatest(){
    return new Promise((resolve, reject) => {
        this.request({
            url: 'classic/latest'
        })
        .then(res => {
            this.lastIndex = res.index
            this.currentIndex = this.lastIndex
            resolve(res)
        })
        .catch(err => {
            reject(err)
        })
    }
}


0
5
大王今天不巡山
回复
runzx
我找到问题所在了,我仔细看您重构的基类明白我错在哪里了。我并没有返回错误,自然也就不能捕获错误!犯了一个低级的错误。话说您重构基类真心强大!赞一个。
2018-09-30
共5条回复

纯正商业级微信小程序应用实战,全方位小程序特性讲解

真实数据的高质量小程序项目,学会直接工作

4782 学习 · 2125 问题

查看课程