链式承诺解决未定义?

时间:2017-06-29 11:29:08

标签: javascript node.js promise

这些是我的功能(简化):

fetchSth: (url) => {return fetch(url)}

parseSth: (res, bot, editMsg) => res.text().then( res => {
  return Promise.resolve(['aa', 'bb']);
})

这是我的链条:

reqs.fetchSth(url)
  .catch(reqs.errInFetch)
  .then((res) => reqs.parseSth(res, bot, editMsg)
    .then(msg => console.dir(msg)) //prints undefined
    )
      .then(msg => {
         console.dir(msg); //prints undefined
      });

为什么它解决为未定义?

1 个答案:

答案 0 :(得分:0)

reqs.errInFetch返回了什么?如果它没有抛出其他错误或返回被拒绝的承诺,则链将继续使用返回的then解析到下一个reqs.errInFetch。这是我第一个看的地方。如果出现这个问题,您必须决定如何处理提取错误。如果您的链可以从中恢复,请在reqs.errInFetch中包含该逻辑。否则抛出一个错误或返回一个被拒绝的承诺,你可以在链的末尾捕获。

相关问题