| 
		
			Сообщение от x-yuri
			
		
	 | 
	| 
		библиотека
	 | 
	
Я нигде не называл это библиотекой.
	
	| 
		
			Сообщение от x-yuri
			
		
	 | 
	| 
		 Где конкретные примеры
	 | 
	
Примеры я уже приводил, вот хотя-бы этот: 
	
	| 
		
			 Цитата: 
		
	 | 
	
		Рассмотрим пример (который взят из головы и в нем возможны ошибки) гипотетического парсера сайта, который после парсинга заносит данные в БД, и, после занесения, вызывает некоторый код. 
var html = '';
request.on('response', function (response) {
    response.on('data', function (chunk) {
        html = html + chunk;
    });
    response.on('end', function() {
        //какой-то парсер
        parse(html, function(data){  
                //какая-нибудь функция, добавляющая данные в базу
        addToDatabase(data, function() {  
            doSomething();
        })
    });
    });
});
 
 
 
Много вложенных колбеков — не есть гуд, пробуем по-другому. 
var html = '';
var responceOnEnd = function() {
    parse(html, parsed);
}
    
var parsed = function(data){ 
    addToDatabase(data, addedToDatabase)
}
var addedToDatabase = function() {
    doSomething();
}
request.on('response', function (response) {
    response.on('data', function (chunk) {
        html = html + chunk;
    });
    response.on('end', responceOnEnd);
});
 
 
 
Но здесь несколько лишних переменных, в которых так же можно запутаться.  
 
Я предлагаю сделать вот так: 
 
wait(function(runNext){
    request.on('response', runNext);
}).wait(function(runNext, response){
    response.on('data', function (chunk) {
        html = html + chunk;
    });
    
    response.on('end', function() {
        runNext(html);
    });
}).wait(function(runNext, html){
    parse(html, runNext);
}).wait(function(runNext, data){
    addToDatabase(data, runNext);
}).wait(function(){
    doSomething();
})
 
 
	 | 
	
	
	| 
		
			Сообщение от x-yuri
			
		
	 | 
	| 
		до этого не сложно догадаться, но в моем случае объект присутствует явно, и к чему относится this очевидно. Или по-другому: у тебя там только функции, причем здесь this? А у меня есть объект.
	 | 
	
Это дело твоё, хочешь, напиши функции setState, getState, я ведь тебе не указ, как и ты мне. Пишем так, как каждый считает лучшим, не без советов, к которым я стараюсь прислушиваться.
	
	| 
		
			Сообщение от x-yuri
			
		
	 | 
	| 
		ты стараешься не усложнять
	 | 
	
Да, ты прав, я люблю, когда всё просто. Самые популярные вещи — просты в использовании, посмотри на ту же "быдло-библиотеку" jQuery.
	
	| 
		
			Сообщение от x-yuri
			
		
	 | 
	| 
		Но в результате такие решения не выдерживали столкновения с практикой и приходилось их доделывать.
	 | 
	
А если усложнить, то, вполне возможно, придется переделывать. Ты сам пишешь: 
	
	| 
		
			Сообщение от x-yuri
			
		
	 | 
	| 
		 Хорошие библиотеки возникают из решения практических задач
	 | 
	
 что бы это не значило, нужно отталкиваться от практических задач.