JSFiddle - React, Tailwind, and code Playground

JavaScript

var p1 = new Promise((resolve, reject) => { 
		setTimeout(() => resolve('p1_delayed_resolvement'), 2000); 
	}); 

	var p2 = new Promise((resolve, reject) => {
		reject(new Error('p2_immediate_rejection'));
	});

	var fn_fast_fail = async function () {
		try {
			var [a, b] = await Promise.all([p1, p2]);
			console.log(a); // "p1_delayed_resolvement"
			console.log(b); // "Error: p2_immediate_rejection"
		} catch (err) {
			console.log('ERROR:', err);
		}
	}

	var fn_slow_fail = async function () {
		try {
			var [a, b] = await Promise.all([
				p1.catch(error => { return error }),
				p2.catch(error => { return error })
			]);
			console.log(a); // "p1_delayed_resolvement"
			console.log(b); // "Error: p2_immediate_rejection"
		} catch (err) {
    	// we don't reach here unless you throw the error from the `try` block
			console.log('ERROR:', err);
		}
	}

	fn_fast_fail(); // fails immediately
	fn_slow_fail(); // waits for delayed promise to resolve