How do I return the response from an asynchronous call?

I am trying to return the value from the callback, assigning the result to a local variable inside the function and returning that one. Still, none of those ways return the response — they all return undefined or whatever the initial value of the variable result is.

Example of an asynchronous function that accepts a callback (using jQuery’s ajax function):

function foo() {
var result;

$.ajax({
url: '...',
success: function(response) {
result = response;
// return response; // <- I tried that one as well
}
});

return result; // It always returns `undefined`
}

Example using Node.js:

function foo() {
var result;

fs.readFile("path/to/file", function(err, data) {
result = data;
// return data; // <- I tried that one as well
});

return result; // It always returns `undefined`
}

Example using the then block of a promise:

function foo() {
var result;

fetch(url).then(function(response) {
result = response;
// return response; // <- I tried that one as well
});

return result; // It always returns `undefined`
}
How do I return the response from an asynchronous call?

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top