我已经从这种类型的函数调用了json,我得到了结果,但我无法将此值返回给另一个函数
这是我的功能。在get_target_amount(全)
console.log(get_target_amount(full))
结果未定义之后。这是什么原因?
function get_target_amount(full) {
var target = '';
var param = {};
param.sub_category_id = full["sub_category_id"];
param.project_month = full["project_month"];
jQuery.post(site_url + '/Progress_project_create/get_target_amount', param, function (response) {
if (response !== null) {
target = response.target_amount;
} else {
target = 'Target amount not found';
}
return target;
}, 'json');
}
答案 0 :(得分:0)
这里的问题是Ajax调用的异步特性。
请将基于目标变量的代码移动到get()函数中的回调函数中。
function(response){//Write all your code here.}
目前, get_target_amount()会返回,而不会等待ajax调用完成。因此,您将获得空值。
您可以考虑另一个选项,例如,让您调用同步。 然后浏览器暂停/冻结页面,直到ajax功能完成。这是不可取的,因为它会让用户不必要地等待页面响应。
此外,回调函数中的return语句不会在任何地方引用