我在等待Promise.all()
时遇到麻烦,此后再也没有继续。我有用于创建可取消的Promise的辅助函数:
create(promise) {
let hasCanceled_ = false
const wrappedPromise = new Promise((resolve, reject) => {
promise.then(
val => (hasCanceled_ ? reject({ isCanceled: true }) : resolve(val)),
error => (hasCanceled_ ? reject({ isCanceled: true }) : reject(error))
)
})
const cancelablePromise = {
promise: wrappedPromise,
cancel() {
hasCanceled_ = true
}
}
return cancelablePromise
}
然后我创建了如下承诺:
const timelinePromise = this.pendingPromises.create(
this.fetchWholeTimeline(false)
)
const confJobsPromise = this.pendingPromises.create(
this.fetchWorkspaceJobConfigurationJobs(false)
)
至少我正在执行这段代码:
const [timelineResponse, confJobsResponse] = await Promise.all(
timelinePromise.promise,
confJobsPromise.promise
)
console.log(timelineResponse)
console.log(confJobsResponse)
console.logs
从未执行过……我在这里做错了吗?
答案 0 :(得分:0)
Promise.all
期望一个promise数组(实际上是可迭代的)作为单个参数。
答案 1 :(得分:0)
Promise.all方法需要一个数组。
Promise.all([promiseA, promiseB])