在运行第一个请求的回调函数RUN_ACTIONS()之前我需要2个ajax请求是complet,但是如何等待它(whit优化临时等待)?
function ajax() {
d3.tsv( ajaxUrl,
function(data) {
while (!secondAJAXQueryComplet());
RUN_ACTIONS(HEADER, data);
}
);
d3.json( ajaxUrl,
function(header) {
define_Header(header);
}
);
}
答案 0 :(得分:4)
你不这样做,你使用一般的回调概念:
function dostuff(callWhenDone) {
// ...
d3.tsv(ajaxUrl, function callWhenTSVCompletes(data) {
// ...
d3.json(ajaxUrl, function callWhenJSONCompletes(header) {
//...
callWhenDone(); // now we're done.
});
});
}
答案 1 :(得分:1)
使用此代码,我同时运行2 AJAX查询并等待最后一个答案,然后再运行我的回调函数RUN_ACTIONS()。但这种方法在我看来并不优雅
function ajax() {
var ready=false,
datatsv=false;
d3.tsv( ajaxUrl,
function(data) {
if (ready)
RUN_ACTIONS(HEADER, data);
else {
ready=true;
datatsv=data;
}
}
);
d3.json( ajaxUrl,
function(header) {
define_Header(header);
if (ready)
RUN_ACTIONS(header, datatsv);
else {
ready=true;
}
}
);
}