В следующем примере мы должны использовать Array.map
для создания одного promise
для каждого элемента dbArr
, затем нам нужно подождать, пока все promises
прекратят использовать Promise.all.catch
здесь, поэтому мы обрабатываем ошибки.
function getAll(dbArr) {
return Promise.all(dbArr.map(x => x.insert(data)));
}
getAll(dbArr)
.then((rets) => {
// Handle the returns
// They are in an array
})
.catch((err) => {
// Handle the error
});
РЕДАКТИРОВАТЬ :
ОК после проверки документации node-couchdb (тот, который, я полагаю, вы используете) - я увидел, что метод .insert()
не возвращает Promise
, а только обратный вызов.
Итак, нам нужно преобразовать метод, чтобы он возвращалОбещание, используя util.Promisify()
const {
promisify,
} = require('util');
function getAll(dbArr) {
return Promise.all(dbArr.map(x => promisify(x.insert)(data)));
}
getAll(dbArr)
.then((rets) => {
// Handle the returns
// They are in an array
})
.catch((err) => {
// Handle the error
});