Reputation: 67
check_promo is an ajax function and parameter 'param' is from ajax success. How do I want to call that parameter to be processed in the next function?
I tried to display alerts but it did not match the resulting ajax
function result_promo(){
var data = '';
check_promo(function(param){ //output param is 1
data = param;
});
return data ;
}
function submit(){
var check = result_promo();
alert(check); //not showing 1 but null
}
Upvotes: 0
Views: 125
Reputation: 1
If your function ' check_promo' is used AJAX call then you need to use Promise or Observable for getting the latest res.
For more information, please follow : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
https://rxjs-dev.firebaseapp.com/guide/observable
Upvotes: 0
Reputation: 51
function result_promo(){
var data = '';
check_promo(function(param){ //output param is 1
submit(param);
});
return data ;
}
function submit(param){
var check = param;
alert(check); //It will show 1 in alert box
}
Upvotes: 1
Reputation: 5118
Since check_promo
is making an AJAX call and the parameter passed to it is a callback, what's happening is that you're firing off the AJAX function but result_promo
returns before check_promo
to complete. Hence data
is null
.
Instead, you'd be better off calling check_promo
in submit
. The result_promo
function serves no real purpose here.
Upvotes: 0
Reputation: 754
You can use promise to archive this. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
Upvotes: 0