关于promise

es6的Promise
情景假设
假如两个函数。
1.第1个函数要完成之后,第2个才执行。
2.第2个函数需要用到第1个函数的响应数据。(如果第一个成功了,我想拿他的res.data,如果失败了,我想拿他的res.code)
怎么弄,最好有代码。(勿喷,正想更好的理解而已)

阅读 2.2k
2 个回答

.then(res.data).catch(res.code)

function fn1() {
  return new Promise((resolve, reject)=>{
    setTimeout(function() {
      reject({code: 0, message: 'error'})
    }, 0)
  })
 }
function fn2(data) {
    console.log(data)
}
fn1()
  .then(function() {
    // success
  })
  .catch(fn2)

第一个函数响应失败就调用 reject(err),把错误的信息传进去,.catch()的回调函数会接收到err参数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题