Bits and Pieces

Insightful articles, step-by-step tutorials, and the latest news on full-stack composable software development

Follow publication

Callback Functions in JavaScript: A Comprehensive Guide

callback function

In JavaScript, a callback function is a function that is passed as an argument to another function and is executed after some operation has been completed.

Callbacks allow us to write asynchronous code, where we can continue to execute other code while waiting for a particular event to occur.

How Do Callback Functions Work?

Callback functions are used to handle events that may occur at any point in time. By passing a callback function as an argument, we allow the function to call it when necessary.

For example, we have to execute doSomethingElse function just after logging “Doing something…” which is in function doSomething.

function doSomething(callback) {
console.log('Doing something...');
callback();
}

function doSomethingElse() {
console.log('Doing something else...');
}

doSomething(doSomethingElse);

In this example, we define two functions, doSomething and doSomethingElse. The doSomething function takes a callback function as an argument and logs a message to the console. It then calls the callback function. The doSomethingElse function logs a different message to the console.

Finally, we call the doSomething function and pass in the doSomethingElse function as the callback. When doSomething is called, it logs "Doing something..." to the console and then calls the doSomethingElse function, which logs "Doing something else..." to the console.

Real-World Example

Another real-world example of using a callback function is when fetching data from a server. In this case, we use a callback function to handle the data once it has been received.

function fetchData(url, callback) {
fetch(url)
.then(response => response.json())
.then(data => callback(data))
.catch(error => console.log(error));
}

fetchData('https://jsonplaceholder.typicode.com/todos/1', function(data) {
console.log(data);
});

In this example, we define a function fetchData that takes a URL and a callback function as arguments. The function uses the fetch function to make a network request to the specified URL. Once the data is received, it is converted to JSON and the callback function is called with the data as an argument.

Finally, we call the fetchData function and pass in a callback function that logs the data to the console. When the data is received from the server, the callback function is called with the data, and the data is logged to the console.

Issues with Callback Functions and Solutions

One issue that can arise when using callback functions is the problem of “callback hell” or “pyramid of doom.” This occurs when you have multiple nested callbacks, making the code difficult to read and understand.

One solution to this problem is to use promises or async/await, which allow for more structured and readable code.

Conclusion

Callbacks are a powerful tool in programming, allowing for asynchronous code execution and enabling developers to write more efficient and flexible code.

However, they can also make code difficult to read and understand, especially when there are multiple nested callbacks.

Promises and async/await are two alternatives to using callbacks that can make code more readable and maintainable.

Some Quick Links

JsFramework | CleanCode | LocalStorage | Redis Caching | Node.js Cluster | Array Methods | Callback Function | Promise | Async/Await

Contact Me

LinkedIn | Github

Build Apps with reusable components, just like Lego

Bit’s open-source tool help 250,000+ devs to build apps with components.

Turn any UI, feature, or page into a reusable component — and share it across your applications. It’s easier to collaborate and build faster.

Learn more

Split apps into components to make app development easier, and enjoy the best experience for the workflows you want:

Micro-Frontends

Design System

Code-Sharing and reuse

Monorepo

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Published in Bits and Pieces

Insightful articles, step-by-step tutorials, and the latest news on full-stack composable software development

Written by Aquib Afzal

Software Developer @ Encora Inc. | Blogger | talks about #javascript #react #nodejs #performance #webdevelopment

No responses yet

Write a response