|
1 | 1 | <div align="center">
|
2 |
| - <h1>Promises</h1> |
| 2 | +<h1>Promises</h1> |
3 | 3 | </div>
|
4 | 4 |
|
5 | 5 | <ol>
|
6 | 6 | <li>
|
7 | 7 |
|
8 |
| -**Promise is introduced in which version of JavaScript ?** |
| 8 | +**Promise is introduced in which version of JavaScript?** |
9 | 9 |
|
10 | 10 | - A: `ES5`
|
11 | 11 | - B: `ES6`
|
12 | 12 | - C: `ES8`
|
13 | 13 | - D: `ES8`
|
14 | 14 |
|
15 | 15 | <br/>
|
| 16 | +<details> |
| 17 | +<summary><b>Answer</b></summary> |
| 18 | +<p> |
| 19 | + |
| 20 | +#### Option: B |
| 21 | + |
| 22 | +</p> |
| 23 | +</details> |
| 24 | +</li> |
| 25 | + |
| 26 | +--- |
| 27 | + |
| 28 | +<li> |
| 29 | + |
| 30 | +**When do we say that a promise is 'settled'?** |
| 31 | + |
| 32 | +- A: `If it is fulfilled` |
| 33 | +- B: `If it is rejected` |
| 34 | +- C: `If it is pending` |
| 35 | +- D: `If it is either fulfilled or rejected` |
| 36 | + |
| 37 | +<br/> |
| 38 | +<details> |
| 39 | +<summary><b>Answer</b></summary> |
| 40 | +<p> |
| 41 | + |
| 42 | +#### Option: D |
| 43 | + |
| 44 | +</p> |
| 45 | +</details> |
| 46 | +</li> |
| 47 | + |
| 48 | +--- |
| 49 | + |
| 50 | +<li> |
| 51 | + |
| 52 | +**What will be the output?** |
| 53 | + |
| 54 | +```JS |
| 55 | +const validateUsernamePassword = (username, password) => { |
| 56 | + return new Promise((resolve, reject) => { |
| 57 | + if (username == "ABC" && password == "123") { |
| 58 | + resolve("SUCCESS!"); |
| 59 | + } else { |
| 60 | + reject("FAILURE!"); |
| 61 | + } |
| 62 | + }); |
| 63 | +}; |
| 64 | + |
| 65 | +validateUsernamePassword("ABC", "123") |
| 66 | + .then((msg) => { |
| 67 | + console.log(msg); |
| 68 | + }) |
| 69 | + .catch((err) => { |
| 70 | + console.log(err); |
| 71 | + }); |
| 72 | +``` |
| 73 | + |
| 74 | +- A: `SUCCESS!` |
| 75 | +- B: `FAILURE!` |
| 76 | + |
| 77 | +<br/> |
| 78 | +<details> |
| 79 | +<summary><b>Answer</b></summary> |
| 80 | +<p> |
| 81 | + |
| 82 | +#### Option: A |
| 83 | + |
| 84 | +</p> |
| 85 | +</details> |
| 86 | +</li> |
| 87 | + |
| 88 | +--- |
16 | 89 |
|
| 90 | +<li> |
| 91 | + |
| 92 | +**While** |
| 93 | + |
| 94 | +```JS |
| 95 | +let setTimeoutResolveReject = new Promise((resolve, reject) => { |
| 96 | + setTimeout(() => { |
| 97 | + resolve("YES"); |
| 98 | + }, 3000); |
| 99 | + setTimeout(() => { |
| 100 | + reject("NO") |
| 101 | + }, 2000); |
| 102 | +}); |
| 103 | + |
| 104 | +setTimeoutResolveReject |
| 105 | +.then((msg) => { |
| 106 | + console.log(msg); |
| 107 | +}) |
| 108 | +.catch((err) => { |
| 109 | + console.log(err); |
| 110 | +}) |
| 111 | +``` |
| 112 | + |
| 113 | +- A: `YES` |
| 114 | +- B: `NO` |
| 115 | +- C: `NO\nYES` |
| 116 | +- D: `YES\nNO` |
| 117 | + |
| 118 | +<br/> |
17 | 119 | <details>
|
18 | 120 | <summary><b>Answer</b></summary>
|
19 | 121 | <p>
|
|
22 | 124 |
|
23 | 125 | </p>
|
24 | 126 | </details>
|
| 127 | +</li> |
25 | 128 |
|
| 129 | +--- |
| 130 | + |
| 131 | +<li> |
| 132 | + |
| 133 | +**While execution, the random value of `randomWaitTime` generated was `3800`. What will be the output?** |
| 134 | + |
| 135 | +```JS |
| 136 | +let examplePromise = new Promise((resolve, reject) => { |
| 137 | + let timeout = 3000; |
| 138 | + let randomWaitTime = Math.floor(Math.random() * 5000) + 1; |
| 139 | + console.log(randomWaitTime); |
| 140 | + if (randomWaitTime <= timeout) { |
| 141 | + setTimeout(() => { |
| 142 | + resolve(); |
| 143 | + }, randomWaitTime); |
| 144 | + } else { |
| 145 | + setTimeout(() => { |
| 146 | + reject(); |
| 147 | + }, randomWaitTime); |
| 148 | + } |
| 149 | +}); |
| 150 | + |
| 151 | +examplePromise |
| 152 | + .then(() => { |
| 153 | + console.log("RESOLVED!"); |
| 154 | + }) |
| 155 | + .catch(() => { |
| 156 | + console.log("REJECTED!"); |
| 157 | + }); |
| 158 | +``` |
| 159 | + |
| 160 | +- A: `RESOLVED!` |
| 161 | +- B: `REJECTED!` |
| 162 | + |
| 163 | +<br/> |
| 164 | +<details> |
| 165 | +<summary><b>Answer</b></summary> |
| 166 | +<p> |
| 167 | + |
| 168 | +#### Option: B |
| 169 | + |
| 170 | +</p> |
| 171 | +</details> |
26 | 172 | </li>
|
27 | 173 | </ol>
|
0 commit comments