function task1(callback) { setTimeout(() => { console.log("Task 1 completed"); callback(); }, 1000); } function task2(callback) { setTimeout(() => { console.log("Task 2 completed"); callback(); }, 1000); } function task3(callback) { setTimeout(() => { console.log("Task 3 completed"); callback(); }, 1000); } function task4(callback) { setTimeout(() => { console.log("Task 4 completed"); callback(); }, 1000); } // This is where callback hell starts task1(() => { task2(() => { task3(() => { task4(() => { console.log("All tasks done!"); }); }); }); });