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

}

上記のように、サービスから JSON を要求するcallback_1 と callback_2という 2 つのコールバック関数があります。

callback_2はcallback_1の前に呼び出され、変数Nameは未定義として表示されます。どんな助けでも大歓迎です、

変数Nameが未定義にならないように、 callback_1を callback_2 の前に実行するにはどうすればよいですか。

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 request return a deferred object (assumming request1 and request2 are ajax calls of some sort). Take a look at http://api.jquery.com/category/deferred-object.
You can use something along the lines of:

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 に答える