
v
12.08.2016
07:53:11
yep

Oleg
12.08.2016
08:21:40
в пине ссылка на чатик для нубских вопросов, возможно там более щадащая аудитория )

Ilya
12.08.2016
08:24:21
>format C:\
Зачем вы человеку советуете генту поставить,

John
12.08.2016
08:24:56
у генту же 3 команды и эта точно не первая, здесь наверное виндовс ставится

Google

Каїн
12.08.2016
08:26:18
Даров рибятки

Anton
12.08.2016
12:25:37
Есть вопрос, может он и ламерский, но я сходу в гугле не нашёл решения.
Есть 2 модуля, живут отдельной себе жизнью. Один выполняет одно, второй второе. Но первый модуль в определённый момент при генерации страницы должен вызвать метод из второго модуля. А второй модуль в это время не успел проинициализироваться, в результате чего выпадает ошибка.
Вариант "запускать второй модуль раньше первого" неспортивный.
Есть конечно вариант ставить в первом модуле какую-то переменную в true, во втором модуле при инициализации смотреть эту переменную, и если она true, то запускать что-то на исполнение, но, как мне кажется, это дикий костыль.
Гугл подсказал смотреть инициализацию второго модуля через setInterval, но это ещё хуже.
Есть что в JS для решения такой проблемы? То есть первый модуль вызывает второй модуль, но вызов ждёт инициализации второго модуля, и только потом происходит исполнение.

Klim
12.08.2016
12:28:09
заводи второй модуль когда заводишь первый

Anton
12.08.2016
12:28:53
первого модуля может не быть

Vladimir
12.08.2016
12:30:11
и первый модуль и второй ассинхронные?


Алексей
12.08.2016
12:30:25
Есть вопрос, может он и ламерский, но я сходу в гугле не нашёл решения.
Есть 2 модуля, живут отдельной себе жизнью. Один выполняет одно, второй второе. Но первый модуль в определённый момент при генерации страницы должен вызвать метод из второго модуля. А второй модуль в это время не успел проинициализироваться, в результате чего выпадает ошибка.
Вариант "запускать второй модуль раньше первого" неспортивный.
Есть конечно вариант ставить в первом модуле какую-то переменную в true, во втором модуле при инициализации смотреть эту переменную, и если она true, то запускать что-то на исполнение, но, как мне кажется, это дикий костыль.
Гугл подсказал смотреть инициализацию второго модуля через setInterval, но это ещё хуже.
Есть что в JS для решения такой проблемы? То есть первый модуль вызывает второй модуль, но вызов ждёт инициализации второго модуля, и только потом происходит исполнение.
посмотри в сторону того же require, там есть асинхронная подгрузка зависимостей. Сначала подгружаем зависимости, потом выполняем уже код. Просто очень странная фраза "в определенный момент", если один модуль вызывает что-то из второго, это ж они уже связанные, а ни как не "живут своей жизнью"


Vladimir
12.08.2016
12:33:38
Есть вопрос, может он и ламерский, но я сходу в гугле не нашёл решения.
Есть 2 модуля, живут отдельной себе жизнью. Один выполняет одно, второй второе. Но первый модуль в определённый момент при генерации страницы должен вызвать метод из второго модуля. А второй модуль в это время не успел проинициализироваться, в результате чего выпадает ошибка.
Вариант "запускать второй модуль раньше первого" неспортивный.
Есть конечно вариант ставить в первом модуле какую-то переменную в true, во втором модуле при инициализации смотреть эту переменную, и если она true, то запускать что-то на исполнение, но, как мне кажется, это дикий костыль.
Гугл подсказал смотреть инициализацию второго модуля через setInterval, но это ещё хуже.
Есть что в JS для решения такой проблемы? То есть первый модуль вызывает второй модуль, но вызов ждёт инициализации второго модуля, и только потом происходит исполнение.
выложи гист с упрощенной версией своих модулей


Anton
12.08.2016
12:33:46
project.extend("module1", {
init() {
},
checkForm() {
}
});
project.extend("module2", {
init() {
},
checkForm() {
}
});
при DOM Ready происходит автоматическая сборка всех модулей и запуск init у каждого, то есть нет чёткого порядка

Алексей
12.08.2016
12:34:24
Пусть этим project занимается, заведи переменную у каждого модуля, deps, где хранятся ссылки на остальные модули, которые необходимы для работы этого модуля.
Перед вызовом init, проверяй, инициализировались ли все модули из deps, если нет
Инициализируй и только потом вызывай init текущего модуля

Google

Anton
12.08.2016
12:36:06
ок, буду смотреть в эту сторону, спасибо

Каїн
12.08.2016
12:40:33
как
что?!
какие вызывания методов модуля другим модулем

Anton
12.08.2016
12:41:32
прямые

Каїн
12.08.2016
12:41:52
это же самый чистый пример когда нужен медиатор
https://addyosmani.com/resources/essentialjsdesignpatterns/book/#mediatorpatternjavascript

Anton
12.08.2016
12:42:05
project.module2.checkForm.apply(project.module2);

Каїн
12.08.2016
12:42:07
если ты пишешь на ангуляре - фабрики выступают в роле медиаторов

Anton
12.08.2016
12:42:22
нет ангуляра

Каїн
12.08.2016
12:42:37
вот
еще лучше
вынеси безнес логику в отдельный файл-медиатор
доступ к которому будут иметь модули которые эту логику должны хендлить
на подключение есть реквает или импорт, что нра больше

Anton
12.08.2016
12:44:03
require тоже мож гляну на досуге

Каїн
12.08.2016
12:44:05
project.extend это путь миксинов какой то

Anton
12.08.2016
12:44:34
если под реквает имелся в виду require

Каїн
12.08.2016
12:44:36
The dictionary refers to a mediator as a neutral party that assists in negotiations and conflict resolution.

Алексей
12.08.2016
12:44:48

Google

Каїн
12.08.2016
12:44:58
рекваержс говно
ес6+ вебпак
или если чистая нода - нода 6.х
с имортами
вызывать метод модуля через другой модуль звучит как вызывать функцию клика чтобы вызвался онклик в жквери
$(xxx).click(() => $(yyy).click()); $(yyy).click(() => console.log(1))
это то что ты пытаешься сделать
$(xxx).click(() => mediator.method();) $(yyy).click(() => mediator.method();)
где у тебя только 1 представление и инстанс медиатора которій ті никуда не копируешь и не раздуваешь лишними пропертями инициальную стратегию (контроллер)
https://addyosmani.com/resources/essentialjsdesignpatterns/book/
реккомендую
по нубски - даже рекваер не нужен и модульность

Vladimir
12.08.2016
12:53:51

Каїн
12.08.2016
12:54:02
хуярни глобальную переменную медиаторы и туда пихай все подряд
http://largescalejs.ru/the-mediator-pattern/
Медиатор применяется в системах, где взаимодействие между модулями может быть весьма сложными, но, в то же время, хорошо определенными.
кстати веб воркеры песдато ложатся на медиаторы
вернее медиаторы в вебворкеры, т.к. они себе ижвут отдельной жизнью и ничего кроме бизнес операций не выполняют
+ отучат использовать сайд еффекты
когда ты пишешь store.changeVariable(); // store.changeVariable = function () { store.x++ } вместо store.changeVariable = function (x) { x++; return x; }

Google

Каїн
12.08.2016
12:58:17
а потом навызывали методов и только догадываешься к каком сраном методе этот хе еще менялся

[Anonymous]
12.08.2016
13:33:06
Ребят
Кто-то юзал Dart?
Как ощущения?

Andrey
12.08.2016
14:12:01

[Anonymous]
12.08.2016
14:12:36
Ну вдруг

Каїн
12.08.2016
14:18:32
Вот интересно

Admin
ERROR: S client not available

Каїн
12.08.2016
14:18:50
Есть ли Object observe полифил
а курва, его задепрекейтили

Pavel
12.08.2016
14:23:55
А вот про felt кто-то может что-то сказать? В плане использовал ли кто?

Vladimir
12.08.2016
14:24:57
что это?

Каїн
12.08.2016
14:25:22
https://www.npmjs.com/package/felt
новый грант
ы

Pavel
12.08.2016
14:26:36
Как я понимаю на экспресс заточенный

Vladimir
12.08.2016
14:27:21
> 2 downloads in the last day
лол
кто же его пробовал?
знаю

Google

Vladimir
12.08.2016
14:27:35
тревис

Каїн
12.08.2016
14:27:38
ы

Вадим
12.08.2016
14:27:41
Новый грант? Я думал, грантом то уже никто не пользуется давно
не говоря уже про галп

Каїн
12.08.2016
14:28:06
и галпом пользуются
и бовером
и жквери 1.2

Вадим
12.08.2016
14:28:33
http://brunch.io/

Vladimir
12.08.2016
14:28:42
это не грант

Вадим
12.08.2016
14:28:48
я знаю, что это не грант...

Каїн
12.08.2016
14:28:57
ультра фаст, не успел написать как уже проект сдеплоился и в продакшене

Vladimir
12.08.2016
14:28:57
ну дурацкое сравнение

Вадим
12.08.2016
14:29:18
сравнение чего? Бранча с галпом?
Или галпа с грантом?

Vladimir
12.08.2016
14:29:28
фелта с грантом

Вадим
12.08.2016
14:29:30
аа

Каїн
12.08.2016
14:29:45
я не смог придумать хуже
прасцице

Вадим
12.08.2016
14:30:01
фелт этот скорее на вебпак похож

Каїн
12.08.2016
14:30:53
говняно ложатся короч веб воркеры на ангуляр фабрики
прийдется что то вроде редукса делать с экшенами