Promise.All 承诺参数
Promise.All promise parameters
我有两个承诺,每个承诺都返回一个字符串数组。我 运行 它们与 Promise.all(p1, p2)
但令我惊讶的是它解析到的值参数是一个 12k 字符串数组(这将是两个承诺之一 returns)。
const p1 = ModelA.find()
.then((bandProfiles) => {
const bandProfilePlayerTags = []
// [...] Filling this array with strings
return bandProfilePlayerTags
})
const p2 = ModelB.find()
.then((response) => {
const playerTags = []
// [...] Filling this array with strings
return playerTags
})
Promise.all(p1, p2).then((values) => {
// Values is an array containing more than 12k strings
})
我预计 values 是一个长度为 2 的数组。values[0]
是 promise 1 返回的数组,values[1]
是 promise 2 返回的数组。我在这里缺少什么?
尝试在数组中传递 p1 和 p2,例如
const p1 = ModelA.find()
.then((bandProfiles) => {
const bandProfilePlayerTags = []
// [...] Filling this array with strings
return bandProfilePlayerTags
})
const p2 = ModelB.find()
.then((response) => {
const playerTags = []
// [...] Filling this array with strings
return playerTags
})
Promise.all([p1, p2]).then((values) => {
// Values is an array containing more than 12k strings
})
Promise.all(iterable); expects an iterable object as a parameter
您确实将 12k 字符串的数组(一个承诺)传递给 Promise.all
,而不是两个承诺的数组。你会想要使用
Promise.all([p1, p2]).then(values => …)
// ^ ^
我有两个承诺,每个承诺都返回一个字符串数组。我 运行 它们与 Promise.all(p1, p2)
但令我惊讶的是它解析到的值参数是一个 12k 字符串数组(这将是两个承诺之一 returns)。
const p1 = ModelA.find()
.then((bandProfiles) => {
const bandProfilePlayerTags = []
// [...] Filling this array with strings
return bandProfilePlayerTags
})
const p2 = ModelB.find()
.then((response) => {
const playerTags = []
// [...] Filling this array with strings
return playerTags
})
Promise.all(p1, p2).then((values) => {
// Values is an array containing more than 12k strings
})
我预计 values 是一个长度为 2 的数组。values[0]
是 promise 1 返回的数组,values[1]
是 promise 2 返回的数组。我在这里缺少什么?
尝试在数组中传递 p1 和 p2,例如
const p1 = ModelA.find()
.then((bandProfiles) => {
const bandProfilePlayerTags = []
// [...] Filling this array with strings
return bandProfilePlayerTags
})
const p2 = ModelB.find()
.then((response) => {
const playerTags = []
// [...] Filling this array with strings
return playerTags
})
Promise.all([p1, p2]).then((values) => {
// Values is an array containing more than 12k strings
})
Promise.all(iterable); expects an iterable object as a parameter
您确实将 12k 字符串的数组(一个承诺)传递给 Promise.all
,而不是两个承诺的数组。你会想要使用
Promise.all([p1, p2]).then(values => …)
// ^ ^