В вашем случае вы можете использовать map
и Promise.all
. Если на карте создается массив Обещаний для этих индексов, Promise.all
ждет, пока эти Обещания будут разрешены, и возвращает массив с их разрешенными значениями.
function(indices) {
let results = Promise.all(indices.map(d => ESClient.search({
index: d.indexName,
body: {
query: {
match: {
first_name: 'fred'
}
}
}
})))
}
Но это не так читабельно, поэтому я бы переместил обратный вызов отображения в собственную функцию:
function searchForIndex(d) {
return ESClient.search({
index: d.indexName,
body: {
query: {
match: {
first_name: 'fred'
}
}
}
})
}
function(indices) {
let results = Promise.all(indices.map(searchForIndex))
}