Skip to main content
Stack Overflow
  1. About
  2. For Teams

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

Required fields*

How do I return the response from an asynchronous call?

How do I return the response/result from a function foo that makes an asynchronous request?

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 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`
}

Answer*

Draft saved
Draft discarded
Cancel
1
  • Why include a Stack Snippet that outputs an error? Commented May 9, 2021 at 15:47

lang-js

AltStyle によって変換されたページ (->オリジナル) /