Changes in new versions / ES2020

// *** before: ***
Promise.all([task1(), task2(), task3()])
    .then(function (results) {
        console.log(results);
    })
    .catch(function (err) {
        console.log("хотя бы один упал, остальные результаты потеряны", err);
    });

// *** in version ES2020: ***
Promise.allSettled([task1(), task2(), task3()])
    .then(results => {
        results.forEach(r => {
            if (r.status === "fulfilled") {
                console.log(r.value);
            } else {
                console.log("упал:", r.reason);
            }
        });
    });