簡體   English   中英

函數內部的兩個回調函數未同步調用

[英]Two callback functions inside a function not called synchronously

    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_1之前調用callback_2,並且變量Name顯示為undefined。 任何幫助,不勝感激,

我該如何讓callback_1在callback_2之前執行,以使變量Name未被定義。

嘗試這個:

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

}

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

} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM