这些是我的功能(简化):
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
});
为什么它解决为未定义?
答案 0 :(得分:0)
reqs.errInFetch
返回了什么?如果它没有抛出其他错误或返回被拒绝的承诺,则链将继续使用返回的then
解析到下一个reqs.errInFetch
。这是我第一个看的地方。如果出现这个问题,您必须决定如何处理提取错误。如果您的链可以从中恢复,请在reqs.errInFetch
中包含该逻辑。否则抛出一个错误或返回一个被拒绝的承诺,你可以在链的末尾捕获。