-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaysnc_promise.js
130 lines (117 loc) · 2.86 KB
/
aysnc_promise.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// let p1= new Promise(
// function(resolve,reject){
// //setTimeout(resolve, 100,'someValArgs');
// setTimeout(() => {
// //console.log("I am a Promise and I m fulfilled")
// resolve(true)
// }, 5000);
// }
// );
// console.log(p1)
// p1.then(
// value=>console.log('fulfilled:',value),
// //(value)=>{console/log(value)}
// error=>console.log("error:",error)
// );
// let p2= new Promise((resolve,reject)=>{
// setTimeout(() => {
// // console.log("I m promise and I m rejected")
// reject(false)
// }, 5000);
// })
// p2.then(
// value=>console.log(value),
// error=>console.log(error)
// )
// p2.catch(
// error=>console.log("error:",error)
// );
function sum(a,b)
{
return a+b
}
function multiply(a,b){
return a*b
}
function multiply2(a,b){
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve(a*b), 3000)
});
return promise
}
console.log("Pattern:- 1*2*3*4,result:-" + eval(1*2*3*4))
try{
//1*2*3*4
console.time()
const promise = new Promise((resolve,reject)=>resolve(1));
promise.then((res)=>multiply(res,2))
.then((res)=>multiply(res,3))
.then((res)=>multiply(res,4))
.then((res)=>console.log("Result of 1st pattern:" + res))
console.timeEnd()
//.catch((err)=>console.error(err))
}
catch(error){
console.log(error)
}
console.log("Pattren:(1*2)+(3*4)+(4*5)- Res:"+ eval((1*2)+(3*4)+(4*5)))
try{
//(1*2)+(3*4)+(4*5)
console.time()
const promise = new Promise((resolve,reject)=>resolve(1));
promise.then((res)=>multiply(res,2)) //1*2
.then((res1)=>{
let mul2=multiply(3,4)
return(sum(res1,mul2))
})
.then((res12)=>{
let mul3= multiply(4,5)
return(sum(mul3,res12))
})
.then((res13)=>{
finalResult=res13
console.log("Result of second pattern :" + finalResult)})
console.timeEnd()
}
catch(error){
console.log("Error:" + error)
}
try
{
Promise.resolve()
.then((res)=>multiply(1,2))
.then((res1)=>{
let mul2=multiply(3,4)
return(sum(res1,mul2))
})
.then((res12)=>{
let mul3= multiply(4,5)
return(sum(mul3,res12))
})
.then((res13)=>{
finalResult=res13
console.log("Result of new pattern :" + finalResult)})
}
catch(error){
console.log("Error:" + error)
}
var p = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve("OK");
}, 2000);
}).
then();
var p2 = p.then(function(data) {
return data + " Good";
})
//(1*2)+(3*4)+(4*5)
async function calc(){
console.time("timer2")
let res1=await multiply2(1,2)
let res2=await multiply2(3,4)
let res3=await multiply2(4,5)
let finalResult=res1+res2+res3
console.log("aync-await result:",finalResult)
console.timeEnd("timer2")
}
calc()