Skip to main content

How do I return the response from an asynchronous call?

· 3 min read
Pablo Aballe

Question: How do I return the response from an asynchronous call?

How do I return the response from an asynchronous call?

Answer:

In JavaScript, handling asynchronous operations is crucial, as many tasks like fetching data from a server, reading files, or waiting for user input may take time to complete. There are several methods to return the response from an asynchronous call. Here, we'll explore three commonly used approaches: callbacks, Promises, and async/await.

1. Callbacks:

Callbacks are functions passed as arguments to an asynchronous function. They are executed when the asynchronous operation is complete.

Example

function fetchData(callback) {
setTimeout(function () {
const data = "Async data";
callback(data);
}, 1000);
}

function handleData(response) {
console.log(response); // Logs "Async data" after 1 second
}

fetchData(handleData);

Explanation

The fetchData function takes a callback function as an argument. The callback function is executed when the asynchronous operation is complete. The handleData function is passed as an argument to the fetchData function. The handleData function is executed when the asynchronous operation is complete.

2. Promises:

Promises are objects that represent the eventual completion or failure of an asynchronous operation. They are used to handle asynchronous operations in JavaScript. A Promise can be in one of three states: pending, fulfilled, or rejected.

Example

function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(function () {
const data = "Async data";
resolve(data);
}, 1000);
});
}

fetchData().then((response) => {
console.log(response); // Logs "Async data" after 1 second
});

Explanation

The fetchData function returns a Promise. The Promise is resolved when the asynchronous operation is complete. The then method is used to handle the resolved Promise. The then method takes a callback function as an argument. The callback function is executed when the Promise is resolved.

3. Async/await:

Async/await is a new way to write asynchronous code in JavaScript. It allows you to write asynchronous code that looks like synchronous code. The async keyword is used to define an asynchronous function, and the await keyword is used to wait for a promise to be fulfilled or rejected.

Example

async function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(function () {
const data = "Async data";
resolve(data);
}, 1000);
});
}

async function handleData() {
const response = await fetchData();
console.log(response); // Logs "Async data" after 1 second
}

handleData();

Explanation

The fetchData function returns a Promise. The Promise is resolved when the asynchronous operation is complete. The handleData function is an asynchronous function. The await keyword is used to wait for the Promise to be resolved. The handleData function is executed when the Promise is resolved.

Conclusion:

Callbacks, Promises, and async/await are all valid ways to return the response from an asynchronous call. The choice of which method to use depends on the situation and personal preference.