How to return the response from an asynchronous call
I have a function foo which makes an asynchronous request. How can I return the response/result from foo?
I am trying to return the value from the callback, as well as assigning the result to a local variable inside the function and returning that one, but none of those ways actually return the response (they all return undefined or whatever the initial value of the variable result is).
Example using jQuery's ajax
function:
function foo() {
var result;
$.ajax({
url: '...',
success: function(response) {
result = response;
}
});
return result;
}
Example using Node.js:
function foo() {
var result;
fs.readFile("path/to/file", function(err, data) {
result = data;
});
return result;
}
Example using the then
block of a promise:
function foo() {
var result;
fetch(url).then(function(response) {
result = response;
});
return result;
}