【问题标题】:Chained promise resolving to undefined?链式承诺解析为未定义?
【发布时间】:2017-06-29 22:39:10
【问题描述】:

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

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

为什么它解析为未定义?

【问题讨论】:

  • 注意:return ["aa","bb"] 就够了...
  • 请贴出实际功能。您的简化版确实有效。
  • 对不起。我的实际功能出现错误。承诺从未得到回报。修好了

标签: javascript node.js promise


【解决方案1】:

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

【讨论】:

  • 对不起。我的实际功能出现错误。承诺从未得到回报。修好了
猜你喜欢
  • 1970-01-01
  • 2015-10-03
  • 2014-05-29
  • 1970-01-01
  • 2022-01-27
  • 1970-01-01
  • 2019-12-04
  • 2016-04-02
  • 1970-01-01
相关资源
最近更新 更多