Показать сообщение отдельно
  #8 (permalink)  
Старый 17.10.2011, 04:53
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от PeaceCoder
А как такое реализует Deffered:
Например как-то так
function test(a){
		return function(){console.log(a);}
	}
	
	var pause = $.Deferred();
	A = A.pipe(test('a')).pipe(test('b')).pipe(function(){return pause;})
	setTimeout(function(){
		pause.resolve();
		},1000)
	A.pipe(test('c')).pipe(function(){
		var tmp = $.Deferred();
		tmp.pipe(test('e')).pipe(test('f'));
		console.log(11);
		
		tmp.resolve();
		return tmp;
	}).pipe(test('d')).pipe(test('g'));
	console.log('end');

Замечания о том, что этот код делает не тоже, что и ваш код, рассматриваются только после того, как вы дадите ответы на следующие вопросы:
а)что все-таки делают на самом деле .sync(true) .sync(false) ?
б) почему this.sync(true).test('e').test('f') может выполнится, а может и нет? от чего это зависит
в) Если я правильно понял(догадался) работу .sync(true), то после него не будут выполнены ни .test('e').test('f'), ни .test('d').test('g'); до тех пор, пока не будет вызван еще один .sync(false)
Ответить с цитированием