function fn1() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve(1);
        }, 1000)
    })
}

function fn2() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            reject(2);
        }, 2000)
    })
}


function main() {
    let f1e, f2e;
    let f1 = fn1().catch(err => { f1e = err });
    let f2 = fn2().catch(err => { f2e = err });
    Promise.all([f1, f2]).then(val => {
        console.log(val);
        console.log(f1e);
        console.log(f2e);
    })
}
main();