Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数中的两个回调函数不是同步调用的_Javascript_Jquery_Ajax_Callback_Asynccallback - Fatal编程技术网

Javascript 函数中的两个回调函数不是同步调用的

Javascript 函数中的两个回调函数不是同步调用的,javascript,jquery,ajax,callback,asynccallback,Javascript,Jquery,Ajax,Callback,Asynccallback,我有两个回调函数,如上所示,callback_1和callback_2,它从服务请求JSON 回调函数_2在回调函数_1之前调用,变量名显示为未定义。非常感谢您的帮助 如何让回调\u 1在回调\u 2之前执行,以便变量名不被定义。尝试以下操作: function sample() { var callback_1 = request1(function(response) { var Name = response.name;

我有两个回调函数,如上所示,callback_1和callback_2,它从服务请求JSON

回调函数_2在回调函数_1之前调用,变量名显示为未定义。非常感谢您的帮助

如何让回调\u 1在回调\u 2之前执行,以便变量名不被定义。

尝试以下操作:

    function sample() {

        var callback_1 = request1(function(response) {

            var Name = response.name;

        });


        var callback_2 = request2(function(response_1) {

                if (response_1.name === Name) {

                    // do something      
                });
        }

}
试试这个:

    function sample() {

        var callback_1 = request1(function(response) {

            var Name = response.name;

        });


        var callback_2 = request2(function(response_1) {

                if (response_1.name === Name) {

                    // do something      
                });
        }

}

jqueryajax请求返回一个延迟对象,因为request1和request2是某种ajax调用。看一看。 您可以使用以下内容:

function sample() {

    var callback_1 = request1(function(response) {
        var Name = response.name;

        var callback_2 = request2(function(response_1) {
            if (response_1.name === Name) {
                // do something      
            }
        });
    });

}

jqueryajax请求返回一个延迟对象,因为request1和request2是某种ajax调用。看一看。 您可以使用以下内容:

function sample() {

    var callback_1 = request1(function(response) {
        var Name = response.name;

        var callback_2 = request2(function(response_1) {
            if (response_1.name === Name) {
                // do something      
            }
        });
    });

}

从回调\u 1调用回调\u 2。。。提示:只需移动第一个};last}Name后面是回调函数的局部变量。。它始终是未定义的。@tymeJV即使名称是全局变量,在执行回调_2之后调用回调_1,因此名称为undefined@min2bro-没错,但这仍然是主要问题。即使回调_1首先返回,也没关系,无法访问。从回调_1调用回调_2。。。提示:只需移动第一个};last}Name后面是回调函数的局部变量。。它始终是未定义的。@tymeJV即使名称是全局变量,在执行回调_2之后调用回调_1,因此名称为undefined@min2bro-没错,但这仍然是主要问题。即使回调函数_1首先返回,也没关系,无法访问。+1 OP还可以使两个函数异步执行,然后确保request1在将request2的结果与名称进行比较之前已完成。不过,对于这个问题来说,这样做可能是不必要的复杂,而且只有在两个请求都需要很长时间的情况下才有必要这样做。+1 OP还可以使两个函数异步执行,然后确保request1在将request2的结果与Name进行比较之前已经完成。但是,对于这个问题来说,这样做可能是不必要的复杂,并且只有在两个请求都需要很长时间的情况下才真正有必要这样做。