2014-06-17 3 views
1

Не дублируйте ее, пожалуйста. У меня большая проблема. Я работаю над кодом javascript с тысячами строк кода. Моя проблема:Как обеспечить выполнение одной задачи только после завершения другой задачи

метод A вызывается из своего класса.

methodA{ 
    doSomething(abc, def, function(obj){ 
     obj.getName(); 
    }); 
} 

doSomething(abc, def, callback){ 
// codes.... 
callback(new XYZ()); 
} 

В конструкторе класса XYZ Я использую пару объектов Jquery Deffered (с Ajax вызовов). Так что моя проблема в obj.getName() Я получаю ошибку, что this.name не определен. Итак, как я могу гарантировать, что выполнение всего XYZ() закончится полностью (все вызовы ajax, обратные вызовы и т. Д.), Когда элемент управления достигнет obj.getName()?

Благодаря

+0

вы не можете писать Methoda в обратном вызове XYZ ()? –

+0

Первое, что вам нужно сделать, это написать действительный javascript! –

ответ

1

Вы можете использовать вызов функции обратно для этой цели. более можно найти на Google по JQuery отсроченного Как shown here

var jqDeferred = doSomething(abc,def,function(obj){ 

}); 

jqDeferred.done(function(){ 
obj.getName(); 
}) 


doSomething(abc,def,callback) 
{ 

} 
Смежные вопросы