Если объект не существует, то делаем запрос на объект и после того как ответ получен отправляем штатные функции запроса, а если же объект есть то отправляем штатные запросы. в функции GetJson последний параметр calback вызывается когда ответ принят( можно запрашивать следующий запрос)
Как бы да штатные опросы охотно завернуть в функцию, но логика т.е сразу не видно что за чем вызывается.
if(IsBookErrorNotExist()){
GetJson('GetBoorkError.CGI',HandlerState,function(){
GetJson('GetPageVar.CGI',HandlerState,function(){
//-----------------------------------------------
//-----------------------------------------------
setTimeout(function(){
GetJson('GetSerNumber.CGI',HandlerState);
}, 20);
//-----------------------------------------------
clearTimeout(timerId||0);
timerId = setTimeout(function tick() {
GetJson('GetPageVar.CGI',HandlerState);
timerId = setTimeout(tick, 1000);
}, 100);
//-----------------------------------------------
});
}
);
}else{
GetJson('GetPageVar.CGI',HandlerState,function(){
//-----------------------------------------------
//-----------------------------------------------
setTimeout(function(){
GetJson('GetSerNumber.CGI',HandlerState);
}, 20);
//-----------------------------------------------
clearTimeout(timerId||0);
timerId = setTimeout(function tick() {
GetJson('GetPageVar.CGI',HandlerState);
timerId = setTimeout(tick, 1000);
}, 100);
//-----------------------------------------------
});
}