【发布时间】:2017-09-12 00:26:27
【问题描述】:
我正在尝试在 reduce 中使用 Promise.all 并且无法让我的 function 工作,除非我的阵列中只有一个用户。 reduce 的起始对象是 Promise。第一次通过reduce,Promise 上有.all 可用。第二次通过时,.all 不可用。
return UserQueries.addUsersOnCasefileCreate(input).then(users => {
return users.reduce((promise, user) => {
return promise.all([
AddressQueries.addAddress(user.address, user.userId, input.orgId),
EmailQueries.addEmail(user.emails, user.userId, input.orgId),
PhoneQueries.addPhones(user.phones, user.userId, input.orgId)
])
.then(() => Promise.resolve(user))
}, Promise);
})
我该如何执行此操作?
【问题讨论】:
-
无论如何,
promise和Promise之间有一个明显的大小写错误。 -
小写的
promise只是reduce的第一个参数,将Promise作为初始对象。这不是错字。 -
没有
Promise.prototype.all()。仅限Promise.all()。 -
第一个参数中的
promise是初始对象中的Promise。这就是为什么它第一次通过循环工作。这就是为什么Promise.all最初可用的原因。 -
我对此表示怀疑。你正在调用一个不存在的函数。
标签: javascript promise reduce