Сообщение от 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
|
Хорошие библиотеки возникают из решения практических задач
|
что бы это не значило, нужно отталкиваться от практических задач.