Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 December 18

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
источник

Ш

Шима in NodeUA - JavaScript and Node.js in Ukraine
С гифки прооорал сначала, а потом вспомнил про генераторы и приуныл
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
Зачем вообще нужны генераторы?
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
Тем более в js. Я кроме учебных примеров живого применения ни разу не видел.
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
На собесах можно фибоначчи на них считать
источник

AK

Andrii Karpenko in NodeUA - JavaScript and Node.js in Ukraine
Alexander
На собесах можно фибоначчи на них считать
🤣
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
До появления async iterable их можно было довольно неплохо применять для обработки потоков данных либо тех же больших массивов, дабы они не лочили на 10 год ивент лупы. Сейчас у них и это забрали вышеупомянутые итераблы.
источник

T

Tolik in NodeUA - JavaScript and Node.js in Ukraine
Тёмыч
Зачем вообще нужны генераторы?
На б-гомерзькому фронті є ліби, написані на генераторах. Saga, на приклад
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Тёмыч
Зачем вообще нужны генераторы?
Генератор удобен как короткий синтаксис создания итератора, особенно асинхронного. А асинхронный итератор - способ пройтись по большому датасету и лениво его инициализировать, не часто, но очень нужно
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Тёмыч
Зачем вообще нужны генераторы?
Пример был на проекте:
- Функция function* findSomethingInTree(t) идет по дереву и ищет в нем то что нам нужно. Когда нашли нужный элемент делаем наверх yield …. (то что нашли)
- Внутри эта функция рекурсивно вызывает саму себя потому что ветка это тоже дерево
- В коде очень удобно пользоваться этим
let treeElements = findSomethingInTree(t);
for (let element of treeElements) {
   // делаем что-то с найденными элементами или break
}
-  Без генератора вы бы там создавали массив с найдеными элементами, собирали бы найденные элементы в массив - код был бы более ugly
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
Elena Sharovar
Пример был на проекте:
- Функция function* findSomethingInTree(t) идет по дереву и ищет в нем то что нам нужно. Когда нашли нужный элемент делаем наверх yield …. (то что нашли)
- Внутри эта функция рекурсивно вызывает саму себя потому что ветка это тоже дерево
- В коде очень удобно пользоваться этим
let treeElements = findSomethingInTree(t);
for (let element of treeElements) {
   // делаем что-то с найденными элементами или break
}
-  Без генератора вы бы там создавали массив с найдеными элементами, собирали бы найденные элементы в массив - код был бы более ugly
о, прикольно
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
интересно, что это за проект, где деревья пишут... а то на ноде я так понял 80% проектов e commerce какое-нибудь
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
Тёмыч
интересно, что это за проект, где деревья пишут... а то на ноде я так понял 80% проектов e commerce какое-нибудь
у нас на ноде деревья.

На фабриках цеха, в цехах линии, на линиях датчики
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
эх мой любимый проект робот Jibo https://waverleysoftware.com/blog/waverley-robot-jibo у него много где были деревья (дерево принятия решений)
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
Elena Sharovar
Пример был на проекте:
- Функция function* findSomethingInTree(t) идет по дереву и ищет в нем то что нам нужно. Когда нашли нужный элемент делаем наверх yield …. (то что нашли)
- Внутри эта функция рекурсивно вызывает саму себя потому что ветка это тоже дерево
- В коде очень удобно пользоваться этим
let treeElements = findSomethingInTree(t);
for (let element of treeElements) {
   // делаем что-то с найденными элементами или break
}
-  Без генератора вы бы там создавали массив с найдеными элементами, собирали бы найденные элементы в массив - код был бы более ugly
я такое стараюсь делать через hierorder functions

walkTree(tree, (element, index, parents) => { … })
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
Elena Sharovar
эх мой любимый проект робот Jibo https://waverleysoftware.com/blog/waverley-robot-jibo у него много где были деревья (дерево принятия решений)
👍
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Andrey Listochkin
я такое стараюсь делать через hierorder functions

walkTree(tree, (element, index, parents) => { … })
даже через eventEmitter можно ) но ему нельзя сказать “остановись!!” а генератору можно - просто не вызываешь next() и он дальше не ищет по дереву
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Elena Sharovar
даже через eventEmitter можно ) но ему нельзя сказать “остановись!!” а генератору можно - просто не вызываешь next() и он дальше не ищет по дереву
Может уже скоро асинхронный ивентемиттер добавят в ноду. Там Матео Коллина свой уже который год пишет.
Да и свой наколбасить не сильно сложно. А если он еще и async iterable будет имплементить - то вообще шикарно.
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
Elena Sharovar
даже через eventEmitter можно ) но ему нельзя сказать “остановись!!” а генератору можно - просто не вызываешь next() и он дальше не ищет по дереву
это да. Я стараюсь логику строить так, что если есть операция, которую нужно применить только к некоторым узлам, то я делаю вначале filter,  и уже потом операцию. Оно мб и медленней (тк 2 итерации нужно делать), но код читать удобнее
источник

R

Roman in NodeUA - JavaScript and Node.js in Ukraine
Как добавить кастомные параметры в sso?
источник