function handle(promise){ return promise.then(data=>[null,data]).catch(err=>[err,null]) } function fn1(){ return new Promise((resolve,reject)=>{ setTimeout(()=>{ console.log('fn1'); resolve('ffn1'); },1000) }) } function fn2(){ return new Promise((resolve,reject)=>{ setTimeout(()=>{ console.log('fn2'); resolve('ffn2'); },1000) }) } function rejectFn(){ return new Promise((resolve,reject)=>{ setTimeout(()=>{ console.log('rejectFn'); reject('rejectFn'); },1000) }) } async function test1(){ let time1 = new Date().getTime(); let f1 = fn1(); let f2 = fn2(); let res1 = await f1; let res2 = await f2; console.log(res1,res2); let time2 = new Date().getTime(); console.log(time2-time1); } // test1(); // 1012ms async function test2(){ let time1 = new Date().getTime(); let res1 = await fn1(); let res2 = await fn2(); console.log(res1,res2); let time2 = new Date().getTime(); console.log(time2-time1); } // test2(); // 2021ms async function test3(){ let time1 = new Date().getTime(); let f1 = fn1(); let f2 = fn2(); let r3 = rejectFn(); let [err,res] = await handle(f1); let [err2,res2] = await handle(f2); let [err3,res3] = await handle(r3); console.log(err,res); console.log(err2,res2); console.log(err3,res3); let time2 = new Date().getTime(); console.log(time2-time1); } test3(); // 1023ms