Дима
То есть это просто, полный тупик. В языке ввели async await — для их поддержки ты берешь их и реализуешь заново. Нет, короче это не вариант)
Anonymous
отлично, сохранила все себе
JẹtFightżer
а async await есть в ноде7?
horpto
c флагом
Дима
В V8 есть, под флагом
Nikolay
в хромчик уже добавили еж
Дима
Это считай и не в ноде по факту и чем-то черевато, так как изначально нестабильно, но я не сталкивался)
JẹtFightżer
оффтоп: у меня часы с плавным ходом стрелки, не тикают и не бесят,уже вроде и привык но никак не нарадуюсь
Oleg
Пробовал, для чистоты синтаксиса однострочников на ramda я выкинул из выражения все упоминания R.( и чутка подставил символов для краткости
data :: when isEmpty [ identity 'empty list' of ] [+] 'tested' [*] [ objOf payload ]
преобразовывается в готовую функцию
R.pipe( R.when( R.isEmpty , R.pipe( R.identity( 'empty list' ), R.of), R.append( 'tested' ), R.map( R.objOf( 'payload' ) )
[*] => R.map
[+] => R.append
[ ... ] => R.pipe( ... ), то есть это такие функциональные скобки
Если есть кавычки в токене — то это string
Если токен существует в ramda, то это функция, если нет — это либо опять строка, либо аргумент, либо ошибка
Так как внутри R.pipe существуют только функции, то значит можно писать всё без скобок, все данные полюбому относятся к ближайшей функции слева
data — это передаваемое в функцию значение, его можно опустить, если оно всего одно (по принципу работы R.pipe), его можно упоминать в теле функции, то есть это обычный аргумент, сколько их передашь — столько и будет в рендеренной функции
Да, думал я бывало как можно было бы пропатчить так некоторые места в ExtJS...
Anonymous
Господа! Объясните пожалуйсто, почему так происходит? https://jsperf.com/innerhtml-vs-removechild
Anonymous
Почему
Anonymous
while (box.firstChild) {
box.removeChild(box.firstChild);
}
Anonymous
Быстрее чем
Anonymous
box.innerHTML = '';
Anonymous
Дима
box.innerHTML = '';
Вероятно, даже если у тебя новый код пуст, то перерендеринг DOM — всё равно затратная операция
Oleg
hlomzik
Быстрее чем
раньше наоборот было) такие вопросы всегда плохи)
hlomzik
ответ обычно — потому что в данный момент в данном движке с данными настройками в данном окружении вот это быстрее
Дима
Фичи, правда, должны быть конечно достойными полноценного языка
Не, это прямо в js, просто переосмысливая какие-то вещи
scala like pattern matching
switch(itch.on(obj)) {
case itch.case = e => (e/2+1) > 100 : return 'cool number'
case itch.case = e => e instanceof MyClass
&& e.value.length>0 : return 'Non-empty myclass element'
case itch.case = 'Matched string' : return 'Just string'
case itch._ = : return 'not matched'
}
Дима
Это короче switch в котором в case стоят либо сопоставляемые значения как обычно, либо сразу функции, которыми проверяется переданная переменная
Причём break не нужен
Дима
¯\_(ツ)_/¯
Дима
Но это чёто-то очень злое, конечно)) Но фактически, с прокси можно сделать и так. Короче js — непаханное поле для экспериментов %)
Anonymous
скала, это функции + жава?
Дима
Ну да, много интересных фишек в языке в плане ооп
Anonymous
Vlad
Дима
Вот вообще тяжёлая психоделия
Тот же самый пример, что и чуть выше, но без транспиляции, на чистом js
[
[ R.when, , R.isEmpty, [ [ R.identity, , 'empty list' ], R.of ] ],
[ R.append, , 'tested' ],
[ R.map, , [ R.objOf, , 'payload' ] ]
]
Так как формально у нас не куча вложенных функций, а массив переменных, то возникает возможность произвольной перемотки и визуализации выполнения, чисто как в redux. Тот же инструметарий devtools, только перематывает и отлаживает не данные, а сам код
Дима
Да, функция задаётся массивом с двумя запятыми после первого элемента 💩 Но благодаря этому вообще вся программа (синхронная) проходится одним редюсером.
Так как меня внесут во все чёрные списки, если я кому - то это покажу, то конечно это только Proof of work 😄
Anton
это все что бы писать функциаональщину?
Дима
Естественно я такой адок никуда подключать не буду, поэтому пока что успокоился и забил))
Anton
та просто ужасные вещи ты показываешь. RxJS глянь, что ли
Anton
но это уже с реактивщиной
Vlad
Vlad
охуенные ощущения https://github.com/iamstarkov/hyper-keymap/blob/master/src/index.js#L71-L74
Дима
Дима
RxJS видел
Anton
та в жопу такую суть, если вот это так нужно писать
Anton
эти конструкции уже на уровне эзотерики
Дима
Anton
та я не вчитывался, сорри, просто увидел это и все и охирел)
Дима
Anonymous
Вот вообще тяжёлая психоделия
Тот же самый пример, что и чуть выше, но без транспиляции, на чистом js
[
[ R.when, , R.isEmpty, [ [ R.identity, , 'empty list' ], R.of ] ],
[ R.append, , 'tested' ],
[ R.map, , [ R.objOf, , 'payload' ] ]
]
Так как формально у нас не куча вложенных функций, а массив переменных, то возникает возможность произвольной перемотки и визуализации выполнения, чисто как в redux. Тот же инструметарий devtools, только перематывает и отлаживает не данные, а сам код
я уже поплыла, спасибо
Дима
Извиняюсь, я больше так не буду 😆🙈
Anonymous
переодически полезно, напоминание, что не знаю жс
Serhii
Это ты не ширяешься фп как они
Serhii
Наркоманы
Vlad
ну не надо так
Vlad
линзы добро
hlomzik
Anton
есть нормальное фп, а это наркоманское)
Serhii
Я с любовью
Vlad
Serhii
Это каратэ
Serhii
Vyacheslav
а потом откуда этот js fatique
Дима
Фп курильщика
Serhii
В мире дзюдоистов
Oleg
JS на столько гибок что тут в рамках одного языка можно подъязыки со своими подходами получать
Serhii
Настолько гибок как спагетти
Oleg
Из спагетти, как из ниток, можно связать неплохой шарф
Дима
Serhii
Слэнг
hlomzik
Serhii
Интересно что бы было если в рамках языка были бы подгруппы
Serhii
Типа общины
Serhii
Кофи ес6 жквери ванила
Дима
React, jQuery, ExtJS
hlomzik
они и так есть)
Serhii
Реальность преследует
Oleg
Ещё есть клан велосипедистов
Arthur'); DROP TABLE Users;--
поскажите, node.js серверный язык, значит он компилируется и выдает готовый html пользователю, верное утверждение?
Serhii
Ну, нет
Serhii
Он просто отдаёт хтмл файл
Name
вообще никак нет, но на самом деле да
Serhii
А если у тебя шаблонизатор тогда он его парсит, заменяет переменные на строки и отдаёт хтмл файл
hlomzik