Javascript 链承诺解析为未定义?

Javascript 链承诺解析为未定义?,javascript,node.js,promise,Javascript,Node.js,Promise,以下是我的功能(简化): 这是我的链条: 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 undefine

以下是我的功能(简化):

这是我的链条:

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
      });

为什么它解析为未定义?

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

注意:返回[“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
      });