Если вы хотите получить массив, если объекты содержат id
и balance
, вы можете сделать что-то подобное. Вы вызываете client.getBalance()
, и в обработчике .then()
вы создаете нужный объект в результате, который объединяет source.id
с balance
, и вы возвращаете его в качестве разрешенного значения из обещания. Затем вы можете запустить Promise.all()
для этого массива обещаний и получить соответствующий массив объектов в результате.
let userSources = firestore.collection('sources');
userSources.get().then(snapshot => {
return Promise.all(snapshot.map(doc => {
let source = doc.data();
return client.getBalance(source.access_token).then(balance => {
return {id: source.id, balance: balance};
});
}));
}).then(results => {
// array of {id, balance} objects
console.log(results);
});
Преимущество заключается в том, что баланс и соответствующий идентификатор помещаются в один и тот же массив объектов, а не в отдельные массивы.