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 ,并且变量名称显示为未定义。任何帮助非常感谢,
如何在 callback_2 之前执行callback_1,以便未定义变量名称。
答案 0 :(得分: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
}
});
});
}
答案 1 :(得分: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
};
})
);
}