js function inside function and wait for return value
17,862
You can't return a result from an asynchronous function, instead you can return a promise to supply that value later, which as it happens is the jqXHR
object returned by $.get
:
function m3_result() {
return $.get(...)
}
and do the same in calculate:
function calculate() {
...
return m3_result(...);
}
and then wait for the result, which will be passed as a parameter to the callback registered with the .done
function:
calculate().done(function(result) {
alert(result);
});
Author by
Lauris Kuznecovs
Updated on September 16, 2022Comments
-
Lauris Kuznecovs over 1 year
$(document).ready(function(){ // Global function (will be include in any HTML file) function m3_result(size_1, size_2, size_3){ $.get('http://www.google.com', function(data){ return data; }); } // Another function function calculate(){ var size_1 = parseFloat($('#add_document_form #size_1').val()); var size_2 = parseFloat($('#add_document_form #size_2').val()); var size_3 = parseFloat($('#add_document_form #size_3').val()); var ax = m3_result(size_1, size_2, size_3); alert(ax); // Here ax return: UNDEFINED } // Run calculate(); });
Results are "undefined", but I would like that calculate() will wait for m3_result() to execute. I see that here problem is coming when I added $.get(), but its needed...
I have searching for callback() like functions, but none fit to my needs, or I just didnt put that right. Any help will be highly appreciated, thanks.
GET url will be localy and element IDs are also ok.