как запустить функцию после другой функции
вопрос, как запустить функцию B после исполнения функции A ?
|
A(); B(); Кэп. |
нет, функция А начинает исполнятся во время исполнения функции В, а надо что бы по завершении исполнения... в общем хочу сделать что бы пока функция В исполняется, кнопка вызова этой функции была не активна, а как закончила исполнятся, стала активна
|
Ну, предположим, ваша функция A исполняется 3 секунды, потому что в ней цикл до 100500000, вы не сможете нажать ничего в этот момент. Пример-то приведите
// НЕ ЗАПУСКАТЬ var i = 1e10; while (i--){} Можете попробовать |
в общем вот после этого надо запустить функцию A
k2=k; ml_2=new YMaps.YMapsML(ml_href+'2.php?'+zapros); YMaps.Events.observe(ml_2, ml_2.Events.Load, function () { obj2 = this.filter(function (obj2) { return (obj2.name) }) cluster.addPlacemarks(obj2); }) после того как массив obj2 добавится в кластер (cluster.addPlacemarks(obj2);) |
А, так вот что вы имели ввиду под одновременным выполнением функции. Я так понял это асинхронные операции с колбэком. Так вызвайте A прямо после cluster.addPlacemarks(obj2);
k2=k; ml_2=new YMaps.YMapsML(ml_href+'2.php?'+zapros); YMaps.Events.observe(ml_2, ml_2.Events.Load, function () { obj2 = this.filter(function (obj2) { return (obj2.name); }); cluster.addPlacemarks(obj2); A(); //ВОТ ТУТ. Кэп }); |
не совсем поняли, сейчас подробнее опишу ситуацию)
весь код расписывать не буду, приведу пример, в общем пока выполняется функция B, кнопка должна быть не активна, после выполнения функции, кнопка должна быть активна, переменные r1 и r2 могут быть обе равны 1 одновременно, всегда по разному, смотря что пользователь нажмет function B(){ $("#button").attr('disabled', true);//дизактивируем кнопку if (r1==1){ cluster.addPlacemarks(obj1); //занимает n-е время } if (r2==1){ cluster.addPlacemarks(obj2); //занимает n-е время } } function A(){ $("#button").attr('disabled', false); } |
aa, понял какая операция асинхронная. Я с этим API не работал, надо вам доки читать, мне кажется что 100% по завершению запроса поджигается какое то событие или возвращает что-то типа Deferred
|
Часовой пояс GMT +3, время: 07:57. |