Показать сообщение отдельно
  #1 (permalink)  
Старый 22.11.2011, 09:01
Кандидат Javascript-наук
Отправить личное сообщение для posta Посмотреть профиль Найти все сообщения от posta
 
Регистрация: 27.08.2010
Сообщений: 115

ассинхронность в порядке очечереди
Ребята, подскажите как сделать так, чтобы одна аякс функция выполнялась, когда другая закончит отработку.

Есть код:
//общая функция для ajax
function __get (d) {
	$.ajax({type: 'POST',url: "modules/server.php",
				data : d,
				success : get_success,
				error:  get_error
			});
	function get_success(r){
		if (r.status) return r; else return r.res;
	}
	function get_error(r){alert ('Ошибка!');}
}

....

var res=__get({ "operation" : "get_com", "id" : node.id });
comments=res.Data; 
/* в этом случае функция __get не успевает отработать и передать comments параметры. comments==undefined*/


Как сделать так чтобы присвоение было только после как функция __get возвратит результат?

Сразу оговорюсь, что это одна функция имеет множество вхождений по коду. и решил сделать одну функцию, вместо того чтобы писать в коде развернутые $.ajax или $.post функции (т.е. с своими success и error).

setTimeout - лишь задерживает код на время, и не гарантирует, что функция завершиться вперед.

Вроде слышал, как то можно решить с помощью нового jQuery - выставлять очередность функции, но не могу найти.
Ответить с цитированием