let promisess = this.distribution.files.map(async(res) => {
// код......
})
Promise.all(promisess).then(() => {
// все отлично, без ошибок
}).catch(err => {
// Есть ошибка, останавливаем обработку promisess
})
function makeRejectable(...promisess) {
let reject;
const rejector = new Promise((_, r) => reject = r);
const promise = Promise.race([
Promise.all(promisess),
rejector
]);
return [promise, reject]
}
const [promise, reject] = makeRejectable(...promisess);
promise.then(console.log, console.error);
reject('reject');
let promisess = this.distribution.files.map(async(res) => {
return new Promise((resolve, reject) => {
// код
// если код выполнился с ошибкой - reject(), без ошибок - resolve()
});
});
Promise.all(promisess).then(() => {
// все отлично, без ошибок
}).catch(err => {
// Есть ошибка, останавливаем обработку promisess
})
Как прервать Promise.all?