Tengo el siguiente código JavaScript:
$('a.button').click(function(){ if (condition == 'true'){ function1(someVariable); function2(someOtherVariable); } else { doThis(someVariable); } }); ¿Cómo puedo asegurarme de que se llame a la function2 2 solo después de que se haya completado la function1 1?
Especifique una devolución de llamada anónima y haga que function1 la acepte:
$('a.button').click(function(){ if (condition == 'true'){ function1(someVariable, function() { function2(someOtherVariable); }); } else { doThis(someVariable); } }); function function1(param, callback) { ...do stuff callback(); }Si está usando jQuery 1.5, puede usar el nuevo patrón Deferreds:
$('a.button').click(function(){ if(condition == 'true'){ $.when(function1()).then(function2()); } else { doThis(someVariable); } });Editar: enlace de blog actualizado:
Rebecca Murphy escribió un excelente artículo sobre esto aquí: http://rmurphey.com/blog/2010/12/25/deferreds-coming-to-jquery/
Prueba esto :
function method1(){ // some code } function method2(){ // some code } $.ajax({ url:method1(), success:function(){ method2(); } })