【发布时间】:2019-05-30 15:44:48
【问题描述】:
我正在编写一个方法来遍历一系列项目以查找下一个不完整或最后一个返回承诺的项目。
项目状态由另一个方法获取,该方法也返回一个承诺,我试图在此方法的解析回调中解析/拒绝。
我的尝试的简化版本如下:
export const findNextEntry = (i) => {
let length = entries.length
let entry = entries[i]
entry.isLastEntry = i + 1 >= length
return new Promise((resolve, reject) => {
getEntryStatus(i).then(() => {
if (entry.status.complete) {
if ((i + 1) < length) {
findNextEntry(i + 1)
} else {
reject('no more entries')
}
} else {
resolve('entry set')
}
})
})
然后我调用方法:
findNextEntry(entry.number).then((resolve) => {
console.log(resolve)
}, (reject) => {
console.log(reject)
})
解决/拒绝回调似乎没有触发,我收到错误Uncaught (in promise) no more entries。
【问题讨论】:
-
可能要仔细检查
store.dispatch('update' + -
我打赌
getEntryStatus(i)只是抛出 (no more entries) 而你不处理这个(你只附加.then到它)。