[英]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.