Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #81 (permalink)  
Старый 27.12.2011, 19:53
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Я конечно же не имею в виду то, что другие решения отсутствуют. Их куча. Просто хочу понять, о чем ты говоришь и знаком ли ты хоть с одним таким решением.
Ответить с цитированием
  #82 (permalink)  
Старый 27.12.2011, 23:43
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от FINoM
Ну а если мы хотим вызвать цепочку, то получится так: ...add().add().add()() ← видишь?
круто, оказывается есть и преимущества

Сообщение от FINoM
Ты же хочешь использовать всякие вещи, типа this.state в функциях. Получается, что в обработчиках (oncomplete, onfailure) this будет элементом из события (в случае прямого запуска это будет window), а в функциях из цепочки this будет являться объектом chain?
не понял, да, хочу использовать this.state в функциях. Плюс, не хочу использовать много разных правил для разных случаев, поэтому правило одно: в обработчике события this указывает на объект, который сгенерировал событие.

Сообщение от FINoM
Кто определяет как должно быть?
я имел в виду, что твой пример скрывает недостатки твоего подхода

Сообщение от FINoM
Блин, привел же.
ладно, привел. Но по нему непонятно, достаточную функциональность предоставляет твоя функция или нет. Приведешь самую сложную цепочку, с которой сталкивался, с указанием всех данных, которые передаются? Может вообще окажется, что прав B~Vladi

Сообщение от FINoM
Значит для него вложенные вызовы — это нормально.
нет, он их по классам распихивает и большая вложенность не возникает

Сообщение от FINoM
Описана задача сделать этот код более плоским.
называй как хочешь. Ты специально не хочешь понимать о чем я говорю? Смотри подчеркнутый фрагмент выше. Если ты считаешь, что возможностей твоей функции тебе хватит или тебя устраивает как будет выглядеть код если не хватит, дальше обсуждать это нету смысла.

подведем итоги: ты считаешь, что твое решение лучше, потому что проще. Я считаю, что оно незначительно проще и что если понадобится больше возможностей они уже будут. По-моему по этому поводу уже все сказано, разве что если ты приведешь пример сложной цепочки. Можно разве что сравнить твое решение с другими.

Сообщение от FINoM
Каких именно? Приведи хотя-бы одно.
да тот же async, который ты в статье упомянул, например. Но ни одним таким не пользовался и по сути не написал ни одного приложения на ноде, если ты об этом.

UPD и можно еще добавить, что B~Vladi считает, что поблема не существует. Тут опять же можно столкнуться с задачей, для которой нужно создавать объекты просто чтобы избежать вложенности.

Последний раз редактировалось x-yuri, 27.12.2011 в 23:46.
Ответить с цитированием
  #83 (permalink)  
Старый 27.12.2011, 23:53
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от x-yuri
не понял, да, хочу использовать this.state в функциях. Плюс, не хочу использовать много разных правил для разных случаев, поэтому правило одно: в обработчике события this указывает на объект, который сгенерировал событие.
Если он будет указывать на объект, сгенерировавший событие, то нам не будут доступны методы нашего класса, this.state, в частности.
Сообщение от x-yuri
Приведешь самую сложную цепочку, с которой сталкивался, с указанием всех данных, которые передаются?
Нет, мне просто лень
Сообщение от x-yuri
нет, он их по классам распихивает и большая вложенность не возникает
Молодец, что уж там. Если есть задача сделать с ООП, то ок. Если нужно сделать какую-то тривиальную фигню, что я привел (те же анимации), то нефиг.
Сообщение от x-yuri
Ты специально не хочешь понимать о чем я говорю?
Я понимаю, что ты хочешь, чтоб я уселся делать рабочий пример. Спор не стоит пары часов моей работы.
Сообщение от x-yuri
да тот же async, который ты в статье упомянул, например.
То же самое, только с другим синтаксисом. Зато там (в функции waterfall) нет сложных вещей, просто такой-же последовательный вызов функций с коллбеками.
Ответить с цитированием
  #84 (permalink)  
Старый 27.12.2011, 23:55
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

И да, кстати, чем пример с анимациями тебе не нравится? Последовательные анимации вполне себе повседневная задача, в отличии от работы с нодой.
Ответить с цитированием
  #85 (permalink)  
Старый 28.12.2011, 05:14
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от FINoM
Если он будет указывать на объект, сгенерировавший событие, то нам не будут доступны методы нашего класса, this.state, в частности.
нет, там один объект - цепочка, все доступно

Сообщение от FINoM
Нет, мне просто лень
Сообщение от FINoM
Я понимаю, что ты хочешь, чтоб я уселся делать рабочий пример. Спор не стоит пары часов моей работы.
стоит, за это время ты можешь решить, что никому не нужен еще один велосипед А потом люди удивляются, что internet is for porn... Хотя, конечно, это только одна сторона правды

Сообщение от FINoM
Молодец, что уж там. Если есть задача сделать с ООП, то ок. Если нужно сделать какую-то тривиальную фигню, что я привел (те же анимации), то нефиг.
для тривиальных задач проблема вообще отсутствует, можно без цепочек обойтись

Сообщение от FINoM
То же самое, только с другим синтаксисом. Зато там (в функции waterfall) нет сложных вещей, просто такой-же последовательный вызов функций с коллбеками.
так ты признаешь, что async лучше твоей реализации?

Сообщение от FINoM
И да, кстати, чем пример с анимациями тебе не нравится? Последовательные анимации вполне себе повседневная задача, в отличии от работы с нодой.
мне вообще твои примеры не нравятся. Я понимаю, конечно, что проще сразу делать, чем думать перед этим... Но мне больше нравиться альтернативный путь. А по поводу анимаций, у библиотек обычно свой интерфейс для этого имеется.
Ответить с цитированием
  #86 (permalink)  
Старый 28.12.2011, 05:24
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от x-yuri
нет, там один объект - цепочка, все доступно
Там ведь доступно событие, ты же сам сказал.
Сообщение от x-yuri
для тривиальных задач проблема вообще отсутствует, можно без цепочек обойтись
Можно, только получится лапша-код.
Сообщение от x-yuri
так ты признаешь, что async лучше твоей реализации?
Как можно сравнивать целую библиотеку с одной функцией?
Сообщение от x-yuri
А по поводу анимаций, у библиотек обычно свой интерфейс для этого имеется.
Какой?
Ответить с цитированием
  #87 (permalink)  
Старый 28.12.2011, 10:29
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от FINoM
Там ведь доступно событие, ты же сам сказал.
где я это сказал?

Сообщение от FINoM
Можно, только получится лапша-код.
а для тебя это такой четкий критерий: лапша/нелапша? И единственный?
Ответить с цитированием
  #88 (permalink)  
Старый 28.12.2011, 18:53
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от x-yuri
где я это сказал?
Сообщение от x-yuri
е понял, да, хочу использовать this.state в функциях. Плюс, не хочу использовать много разных правил для разных случаев, поэтому правило одно: в обработчике события this указывает на объект, который сгенерировал событие.
Сообщение от x-yuri
а для тебя это такой четкий критерий: лапша/нелапша? И единственный?
Нет
Ответить с цитированием
  #89 (permalink)  
Старый 29.12.2011, 02:10
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

ты меня не правильно понял, хотя я не знаю как это еще можно было понять
var chain = new AsyncChain()
    .setOptions({
        onComplete: function() {
            // this указывает на объект, который сгенерировал событие - chain
        }
    })
    .add(function() {
        // функция выполняется в контексте цепочки
        this.fireEvent('complete')   // this -> chain
    })


Сообщение от FINoM
Нет
хотя дело не в единственный/один-из. Просто требования могут быть разные: кто-то может все действия в цепочки выстраивать, а кто-то наоборот писать все функции с колбеками. И тут не надо забывать, что 20% усилий из ста не приносят заметного результата... а бывает и наоборот, создают проблемы...

Последний раз редактировалось x-yuri, 29.12.2011 в 04:52.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мой сайт. Логические игры. MininAS Ваши сайты и скрипты 45 20.09.2013 23:22
Оцените мой сайт: Большой Русский Форум ФОРУМ Ваши сайты и скрипты 2 16.05.2010 13:27
Мой сайтик маримьяна Ваши сайты и скрипты 4 15.04.2009 14:32
Синхронный запрос данных по AJAX Shasoft AJAX и COMET 2 03.03.2009 14:07