Synchronous
- synchronous execution task run step by step(one after another) ,each step waits for the previous one to finish.
Example:
console.log(1)
console.log(2)
console.log(3)
output print:
1
2
3
Asynchronous
- asynchronous execution does't wait.It can run tasks in the background(like fetch data) and continue with other work
Example:
console.log(1)
setTimeout(()=>{
console.log(2)
},2000)//here 2000 is (after 2 seconds)
console.log(3)
output print:
1
3
2(after 2 seconds)
Callback hell
- Callback Hell Explained with a Real-Life Example Imagine you are building a software project. The process usually goes like this:
Analysis → Gather requirements
Plan → Create a roadmap
Design → Decide how it should look/work
Develop → Write the code
Tester → Test the application
Deployment → Release the app
- Here Problem: Callback hell makes code messy, hard to debug, and less readable.
Example:
setTimeout(() => {
console.log("Analysis");
setTimeout(() => {
console.log("Planing");
setTimeout(() => {
console.log("Design");
setTimeout(() => {
console.log("Developer");
setTimeout(() => {
console.log("Testing");
setTimeout(() => {
console.log("Deployement");
},1000);
}, 1000);
}, 1000);
}, 1000);
}, 1000);
}, 1000);
Promise
- We use the Promise its help to the code readability is easy inside the function execution.
<script)>
function task((step,result){
return new promise(resolve,reject)=>{
setTimeout(()=>{
console.log(step)
if (result) {
reject();
} else{
resolve()
}
}, 1000);
})
};
task("Analysis")
.then(() => task("plan"))
.then(() => task("Design", true))
.then(() => task("Development"))
.then(() => task("Testing", true))
.then(() => task("Deployment"))
.catch(() => console.log("Testing failed"))
.finally(() => console.log("hello"))
</script)>
Top comments (0)