@JSlang

Страница 2195 из 2237
Viktor
09.10.2018
14:04:14


cristina
09.10.2018
14:04:18
Спасибо
Array(5).fill(x)

Viktor
09.10.2018
14:04:22
Спасибо
Можешь так

Duego
09.10.2018
14:04:44
Можешь так
Так и сделал)

Google
Yura
09.10.2018
14:05:21
Вот это неожиданно Не знал о таком

Viktor
09.10.2018
14:05:22
Array(5).fill(x)
человеку нужен диапазон чисел

Viktor
09.10.2018
14:05:41
Вот это неожиданно Не знал о таком
я когда-то в твиттере вычитал)

Nikolay
09.10.2018
14:05:56
Обычный декоратор. Можно подумать, никогда функции ими не обвешивал :)

cristina
09.10.2018
14:06:25
https://stackoverflow.com/questions/12503146/create-an-array-with-same-element-repeated-multiple-times Тут есть хуже)

Maksim
09.10.2018
14:06:26
патчить нативное апи. хотя на этом весь ангуляр стоит

Nikolay
09.10.2018
14:06:52
Но в целом — обезьяний патчинг есмь зло.

Maksim
09.10.2018
14:07:17
никто в здравом уме не пишет код который что-то ломает специально )

Nikolay
09.10.2018
14:07:26
Хакеры.

Maksim
09.10.2018
14:07:37
имею в виду в своем же коде

Google
Viktor
09.10.2018
14:08:10
вспомним еще mootols, который патчил prototype и теперь TC39 не может использовать имена flatten, flatMap в новой версии языка

Nikolay
09.10.2018
14:08:17
Maksim
09.10.2018
14:08:38
тесты в прод не идут

Viktor
09.10.2018
14:10:18
Тесты :)
я думаю, в приложениях, где приходится патчить прототипчик на скорую руку, с тестами беда)

Viktor
09.10.2018
14:12:43
технически да, только вот когда я делаю запрос, который меняет состояние системы, потом кто-то его прослушивает и тоже меняет состояние системы, шах и мат в обслуживании наступает быстро

под это тесты никто писать не будет

:)

Nikita
09.10.2018
14:13:48
никто в здравом уме не пишет код который что-то ломает специально )
Недавно дебажил интересную штуку, потратил несколько часов а оказалось, проблема была в том, что кто-то переопределил Date.now() на возврат не таймстемпа, а форматированного времени строкой

Viktor
09.10.2018
14:14:29
ппц

Nikita
09.10.2018
14:14:33
Вопрос - кому могло такое понадобиться?

Viktor
09.10.2018
14:15:35
у меня есть догадка

Viktor
09.10.2018
14:16:28
https://learn.javascript.ru/write-unmain-code

когда-то я с этой статьи так хохотал

Nikita
09.10.2018
14:17:23
https://learn.javascript.ru/write-unmain-code
Видимо чувак этим и руководствовался

Viktor
09.10.2018
14:18:19
У меня есть идея для библиотеки

Eddie
09.10.2018
14:18:57


Viktor
09.10.2018
14:19:35
короче библиотека проверяет все содержимое стандартных прототипов языка, и выдает то, что изменено, когда ты садишься это рефакторить (не дай бог)

Google
Viktor
09.10.2018
14:20:36
ну или CLI инструмент для анализа переприсваиваний)

на прототипах

Viktor
09.10.2018
14:24:44
а он точно отвечает за вставку? или это делает сборщик

Eddie
09.10.2018
14:26:33
Viktor
09.10.2018
14:29:20
https://browsersync.io/docs/options/#option-snippetOptions

не, browserSync вставляет, автоматом
наверное, это настраивается здесь

Eddie
09.10.2018
14:31:35
Viktor
09.10.2018
14:34:17
хотя, признаться, я не очень понял, как это должно работать

Viktor
09.10.2018
14:41:27
а сниппетом у них называется любой JS скрипт что ли?

Eddie
09.10.2018
14:44:00
а сниппетом у них называется любой JS скрипт что ли?
ну как любой, только тот, который вставляет в страницу, для связи с browserSync , чтобы страница перезагружалась

Viktor
09.10.2018
14:44:51
ааааа

просто у них там в документации куча опций и ни одна не подписана

поэтому мне трудно вообще составить понимание, как это все должно работать

Eddie
09.10.2018
14:48:27
поэтому мне трудно вообще составить понимание, как это все должно работать
перед загрузкой страницы, регулярка (rule.match) ищет куда вставить тот самый скрипт, если находит совпадение, вставляет, если нет, соотвецтвено нет. ну я втсавил рандомную строку, и мне скрипт перестало вставлять, но я его вставил в ручную, и все работет

Пидорас
09.10.2018
15:01:43
Как можно преобразовать в этом примере блокирующую операцию (цикл в первом таймере) в неблокирующую (скорее всего это будет рекурсивная асинхронная функция), что бы таймер 2 сработал не по окончанию выполнения цикла в таймере 1? setTimeout(()=>{ console.log('Timeout 1'); var start = (new Date).getTime(); while (((new Date).getTime() - start) < 10) { console.log('Flood from timeout 1'); } }, 0); setTimeout(()=>{ console.log('Timeout 2'); }, 0); var start = (new Date).getTime(); while(((new Date).getTime() - start) < 10) { console.log('Flood'); } console.log('End');

Филип
09.10.2018
15:09:33




Помогите как сделать такое мобильное меню может где есть видео?

Google
Viktor
09.10.2018
15:12:37
Как можно преобразовать в этом примере блокирующую операцию (цикл в первом таймере) в неблокирующую (скорее всего это будет рекурсивная асинхронная функция), что бы таймер 2 сработал не по окончанию выполнения цикла в таймере 1? setTimeout(()=>{ console.log('Timeout 1'); var start = (new Date).getTime(); while (((new Date).getTime() - start) < 10) { console.log('Flood from timeout 1'); } }, 0); setTimeout(()=>{ console.log('Timeout 2'); }, 0); var start = (new Date).getTime(); while(((new Date).getTime() - start) < 10) { console.log('Flood'); } console.log('End');
не знаю, возможно, тут никак я объясню в чем тема setTimeout регистрирует отложенное действие (оно уже асинхронно), которое выполнится *на следующем* цикле Event Loop. То есть сначала выполнится весь текущий синхронный код, затем пойдет следующий цикл, вначале которого выполнится код всех промисов, потом только пойдет очередь за callback'ами setTimeout

Max
09.10.2018
15:13:54
Кто-нибудь работал с level базой? возникла такая проблема, если пытаться открыть ее в 2 проектах, то она открывается только в одном проекте, во втором она игнорируется

Пидорас
09.10.2018
15:21:22
Вместо промиса можно вставить console.log, это ничего не изменит

Viktor
09.10.2018
15:21:34
Пидорас это вообще разные вещи

Промис всегда асинхронен

Пидорас
09.10.2018
15:22:19
Пидорас это вообще разные вещи
Нет, не разные. Здесь моментальный резольв промиса

Промис всегда асинхронен
А что показывает этот пример?

Admin
ERROR: S client not available

Viktor
09.10.2018
15:22:41
Пидорас тебе необходимо разобраться с временной шкалой выполнения кода в Javascript



Пидорас сейчас консоль лог стоит после промиса, но выполняется он первее

Yury
09.10.2018
15:25:21
привет Пидорас :)

Viktor
09.10.2018
15:25:21
Пидорас следовательно раз console.log выполняется синхронно, то Promise выполняется асинхронно (даже несмотря на то, что его завершение выглядит синхронным)

Пидорас
09.10.2018
15:25:22
Пидорас сейчас консоль лог стоит после промиса, но выполняется он первее
Как и в случае с таймерами, он только складывается в очередь выполнения

Viktor
09.10.2018
15:25:56
Пидорас Да вопрос теперь только в порядке формирования этой очереди. Щас покажу



Пидорас регистрирую я их в прямом порядке, а срабатывают они в обратном

Пидорас если setTimeout и Promise (как мы выяснили) оба асинхронны, то почему setTimeout(..., 0) срабатывает в асинхронной очереди после Promise, если регистрируется он первее него

Пидорас Есть некоторый приоритет операций, он довольно прост. ——[SYNC]——-[ASYNC_PRE]—--[ASYNC_POST]——> время

Google
Viktor
09.10.2018
15:33:22
Пидорас ты лезешь немного глубже нужного, на мой взгляд. Имхо, для объяснения таких вещей низкоуровневые схемы не подходят. Нужно метить в более высокий уровень абстракции от деталей SYNC - здесь выполняется весь синхронный код (console.log лежит в данном измерении) ASYNC_PRE - здесь выполняется приоритетный асихронный код, который добавляется всегда в начало оречеди (Promise работает в этом измерении) ASYNC_POST - здесь выполняется весь остальной асинхронный код (setTimeout работает в этом измерении)

Viktor
09.10.2018
15:36:20
Где об этом сказано? На что я могу сослаться, что бы доказать что это так?
вершину айсберга ты увидел из моих скринов. Дальше можешь погуглить, но я сейчас тоже пойщу пару материалов из прошлого

Пидорас и скину сюда

Пидорас
09.10.2018
15:37:41
вершину айсберга ты увидел из моих скринов. Дальше можешь погуглить, но я сейчас тоже пойщу пару материалов из прошлого
Желательно что бы это был конкретный пункт документации. Если конечно сверху утверждения о том, как это работает, а не догадки. Если догадки - доказательств не требуется

Nibbler
09.10.2018
15:39:53
????????

Viktor
09.10.2018
15:41:40
Пидорас не догадки. Сейчас заодно и себе в закладки кину, пригодится. Фундаментальные основы я точно знаю. Однако я хочу найти расширенное описание приоритетов операций в асинхронных очередях. Есть ведь еще операции, помимо Promise и setTimeout (setImmediate, process.nextTick)

Пидорас у них всех есть свой приоритет при добавлении в очередь, но я смутно помню, как это выглядит

Viktor
09.10.2018
15:44:22
https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/
Спасибо. Я так и не добрался до серии книг Кайла Симпсона YouDontKnowJS

Egor
09.10.2018
15:44:43
это не из нее, но статья достаточно хорошо все обьясняет

Maksim
09.10.2018
15:51:19
ничего что эта ваша асинхронщина вообще не является частью спеки js, а зависит от окружения?

Viktor
09.10.2018
15:52:05
это не из нее, но статья достаточно хорошо все обьясняет
вторая статья просто прекрасна, я пощелкал сейчас

Страница 2195 из 2237