Quantcast
Viewing latest article 42
Browse Latest Browse All 44

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

Viewing latest article 42
Browse Latest Browse All 44

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>