Javascript 如何在ajax调用后返回值?
我想向其他函数返回一个ajax调用值。代码如下所示 剧本Javascript 如何在ajax调用后返回值?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我想向其他函数返回一个ajax调用值。代码如下所示 剧本 var obj2 = ajax_call(); function ajax_call() { var obj3; $.post("action.php",{action: 'view_style_code_action',style_val: v},function(data,status){ obj3 = $.parseJSON(data); }); return(obj3)
var obj2 = ajax_call();
function ajax_call() {
var obj3;
$.post("action.php",{action: 'view_style_code_action',style_val: v},function(data,status){
obj3 = $.parseJSON(data);
});
return(obj3);
}
console.log(obj2+'test');
AJAX将在将来返回结果(这就是为什么它是异步的)。由于JavaScript在单个线程中运行,因此不能立即返回值 您需要理解jQuery,它已经支持了 稍微修改一下代码,以利用代码中承诺的力量
function ajax_call() {
return $.post("action.php", {action: 'view_style_code_action',style_val: v})
}
ajax_call()
.then(function(data) {
// Do the parsing here
var obj3 = $.parseJSON(data);
// Do rest of your work here.
...
});
由于承诺是异步的,所以无法从中获得返回。我如何在其他函数中重用obj3值。如果我愿意,我必须再次调用相同的ajax,对吗?如何避免重复使用同一个ajax调用?哦,不,更新您的编码模式以遵循异步方式,这将为您提供更好的解决方案explanation@Rijo:从
中传递obj3
的值。然后
传递给其他函数,然后执行任何操作。
function ajax_call() {
return $.post("action.php", {action: 'view_style_code_action',style_val: v})
}
ajax_call()
.then(function(data) {
// Do the parsing here
var obj3 = $.parseJSON(data);
// Do rest of your work here.
...
});