成功的json请求后无法返回

时间:2017-11-21 05:55:46

标签: json ajax return

我已经从这种类型的函数调用了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');
        }

1 个答案:

答案 0 :(得分:0)

这里的问题是Ajax调用的异步特性。

请将基于目标变量的代码移动到get()函数中的回调函数中。

function(response){//Write all your code here.}

目前, get_target_amount()会返回,而不会等待ajax调用完成。因此,您将获得空值。

您可以考虑另一个选项,例如,让您调用同步。 然后浏览器暂停/冻结页面,直到ajax功能完成。这是不可取的,因为它会让用户不必要地等待页面响应。

此外,回调函数中的return语句不会在任何地方引用