File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ <!DOCTYPE html>
2+ < html lang ="en ">
3+ < head >
4+ < meta charset ="UTF-8 ">
5+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
6+ < title > Callback Hell</ title >
7+ </ head >
8+ < body >
9+ < script >
10+ /*
11+ # Callback Hell (Pyramid of doom): The structure formed when a callback function is within another callback function and the pattern continues ...
12+ - This is a disadvantage of callbacks
13+ - Hence, the alternative approaches of handling asynchonous code are promises and async-await
14+
15+ - Example: Order tracking app
16+ - Instantly: Order confirmed β
17+ - After 2 seconds: Order is being prepared π
18+ - After 10 seconds: Order prepared π
19+ - After 5 seconds: Order handed over to the delivery person π¦
20+ - After 3 seconds: Order is on the way π΄
21+ - After 8 seconds: Order reached it's destination π
22+ - After 4 seconds: Order has been delivered π
23+
24+ Total processing time for order: 32 seconds
25+ */
26+
27+ const placeOrder = ( callback ) => {
28+ console . log ( 'Order confirmed β
' )
29+ callback ( )
30+ }
31+
32+ placeOrder ( ( ) => {
33+ setTimeout ( ( ) => {
34+ console . log ( 'Order is being prepared π' )
35+ setTimeout ( ( ) => {
36+ console . log ( 'Order prepared π' )
37+ setTimeout ( ( ) => {
38+ console . log ( 'Order handed over to the delivery person π¦' )
39+ setTimeout ( ( ) => {
40+ console . log ( 'Order is on the way π΄' )
41+ setTimeout ( ( ) => {
42+ console . log ( `Order reached it's destination π` )
43+ setTimeout ( ( ) => {
44+ console . log ( `Order has been delivered π` )
45+ } , 4 * 1000 )
46+ } , 8 * 1000 )
47+ } , 3 * 1000 )
48+ } , 5 * 1000 )
49+ } , 10 * 1000 )
50+ } , 2 * 1000 )
51+ } )
52+ </ script >
53+ </ body >
54+ </ html >
You canβt perform that action at this time.
0 commit comments