|
@@ -0,0 +1,73 @@
|
|
|
+
|
|
|
+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
|