1
    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      
                });
        }

}

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

callback_2在callback_1之前调用,变量Name显示为未定义。非常感谢任何帮助,

如何让 callback_1 在callback_2之前执行,以便变量Name不是未定义的。

4

2 回答 2

4

试试这个:

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      
            }
        });
    });

}
于 2013-07-22T18:55:45.473 回答
2

jQuery ajax 请求返回一个延迟对象(假设 request1 和 request2 是某种 ajax 调用)。看看http://api.jquery.com/category/deferred-object
您可以使用以下内容:

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

    });


    callback_1.then(
        callback_2 = request2(function(response_1) {

            if (response_1.name === Name) {

                // do something      
            };
        })
    );

} 
于 2013-07-22T19:04:14.503 回答