2015-09-02 6 views
-3

У меня есть две функции: function1() и function2(). Ниже представлена ​​структура кодаВызов одной функции за другой в функции в JQuery

function1(){ 
//Inside this function there is one more function(present in different JS file) 
    functionA(){ //functionA calls a different function in some other JS file 

    } 
} 

function2(){ 

} 

Я попытался дать обратный вызов, поэтому функция function1() будет выполнена до функции2(). Это не сработало.

Может кто-нибудь предложить. Как я могу выполнить функцию1() (все функции внутри функции), а затем функцию2()?

+5

Что делают эти 2 функции? Делают ли они звонки AJAX? Как вы пытались использовать обратный вызов? –

+0

В зависимости от того, что они делают, вы можете изучить использование отложенного объекта/обещаний jQuery. –

ответ

1

Ваш вопрос расплывчатый, но я предполагаю, что вы делаете операцию асинхронной и нужно ждать возвращения что-то вроде этого:

function1(callback){ 
    // last function called 
functionA(callback){ 
     // some ajax or async operation 
     $.ajax(function(){ }).done(callback) 
    } 
} 

function2() {}; 

function1(function2) 

Если, однако есть несколько вызовов Ajax и вам нужно, чтобы это было сделано в последний раз, вам придется объединить все вызовы вместе, или вам нужно будет сделать механизм синхронизации для вызова, как только все вызовы ajax вернутся.

+0

Да, правильно у меня есть вызов AJAX. Я был обратным вызовом внутри функции1 вместо функции А. Отсюда и проблема. Спасибо за решение – Nagendra

+0

сделал это? Если не дайте мне знать, как я могу помочь, если это так, пожалуйста, отметьте вопрос как ответ –

+1

Да, это сработало! Спасибо за решение – Nagendra

-1

Вы можете вернуть вторую функцию, а затем позвонить.

function fn1(){ 

    return function fn2(){ 
    } 

} 

fn1()() 
Смежные вопросы