function print(msg, delay) { return new Promise((resolve, reject) => { setTimeout(() => { resolve(msg) }, delay) }) } const p1 = print('1', 200) const p2 = print('2', 300) const p3 = print('3', 400) const p4 = Promise.reject('error test') Promise.all([p1, p2, p3, p4]).then(res => { console.log(res) }).catch(e => { console.log(e) }) Promise.race([p1, p2, p3]).then(res => { console.log(res) })