forked from bittu1040/JavaScript-Coding-and-Notes
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpromise.js
More file actions
201 lines (150 loc) · 4.97 KB
/
promise.js
File metadata and controls
201 lines (150 loc) · 4.97 KB
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
// Promise is one of the way to handle asynchronous task in JavaScript:
// Promise in JavaScript is an object that reprsent eventual completion or failure of an asynchronous operation and resulting its final value.
// Basic example
// const myPromise = new Promise((resolve, reject) => {
// setTimeout(() => {
// resolve("success");
// }, 2000);
// setTimeout(() => {
// reject("rejected")
// }, 3000);
// });
// example 1
/*
const myPromise = new Promise((resolve, reject) => {
let randomNumber = Math.floor(Math.random() * 10);
if (randomNumber > 5) {
resolve(randomNumber);
} else {
reject(new Error("Error: Number is less than or equal to 5"));
}
});
myPromise
.then((data) => {
console.log("Resolve:", data);
})
.catch((error) => {
console.log("Reject:", error.message);
})
.finally(() => {
console.log("Finally block");
});
*/
// example 2
// example of promise using fetch
/*
fetch("https://jsonplaceholder.typicode.com/todos/1")
.then((response) => {
console.log(response.headers.get("Content-Type")); // we check response.headers.get('Content-Type')= application/json
let promise = response.json();
console.log(promise instanceof Promise); // It return promise hence true
return promise;
})
.then((data) => {
console.log(data);
});
*/
// example 3
/*
new Promise((resolve, reject) => {
console.log("promise")
try {
throw new Error("Something is wrong!");
}
catch(e){
console.log(e.message)
}
}).catch((error) => console.log(error));
*/
// Handle multiple promises
// promise.race, promise.all, promise.any, promise.allSettled
//promise.any
// This method takes an array of promises as input and returns a single promise that
// It will resolve if any of the promises in an array are resolved with the resolved value.
//If all the promises are rejected, promise will be rejected with the error “AggregateError: All promises were rejected”.
/*
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 1 resolved'), 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 2 resolved'), 2000);
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 3 resolved'), 3000);
});
Promise.any([promise1, promise2, promise3])
.then((result) => {
console.log(result); // Prints the value of the first resolved promise
})
.catch((error) => {
console.error(error); // Handle error if all promises are rejected
});
*/
// promise.all
// This method takes an array of promises as input and returns a single promise that
// resolves when all of the promises in the array have resolved, or rejects when any one of the promises rejects.
/*
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 1 resolved'), 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 2 resolved'), 2000);
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 3 resolved'), 3000);
});
Promise.all([promise1, promise2, promise3])
.then((result) => {
console.log(result);
})
.catch((error) => {
console.error(error);
});
*/
// promise.race
// This method takes an array of promises as input and returns a single promise
// It will return the promise as soon as any of the promises is either resolve or reject.
/*
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => reject('Promise 1 rejected'), 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 2 resolved'), 2000);
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 3 resolved'), 3000);
});
Promise.race([promise1, promise2, promise3])
.then((result) => {
console.log(result);
})
.catch((error) => {
console.error(error);
});
*/
// promise.allsettled
//This method is similar to Promise.all(), but it waits for all promises to settle (either resolve or reject),
// regardless of their result (resolve or reject).
// It returns an array of objects with the status of each promise.
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 1 rejected'), 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 2 resolved'), 2000);
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => resolve('Promise 3 resolved'), 3000);
});
// Promise.allSettled([promise1, promise2, promise3])
// .then((data) => {
// // console.log(data)
// })
// Example: Implement a promise that resolves after 3 seconds
const promise= new Promise((resolve, reject)=>{
setTimeout(() => {
resolve("resolved")
}, 3000);
})
promise.then((data)=>{
console.log(data)
})