
Anima
06.05.2018
20:59:18

Nutscracker
06.05.2018
21:01:59
я не понимаю как использовать такой сложный для понимания код как генераторы. Ну ок из него запилили библиотеку которая позволяет выделить работу с апи в отдельный слой выходит...черт где это все было 2 недели назад когда я дрочился с redux-thunk))) Но в целом слишком сложная штука имхо. Дадут тебе код на генераторах переписывать, и у тебя пукан подорвется

Тарас
06.05.2018
21:02:58
?
может стоит попробовать vue? ))

Google

Nutscracker
06.05.2018
21:03:23
я почему спрашиваю, потому что на собеседованиях уже два раза видел вопросы по генераторам...думал гадал, кто их юзает и как

from
06.05.2018
21:04:05
а нужны ли генераторы вообще при разработке интерфейсов ?

Andrew
06.05.2018
21:04:49
они изи
ну саги на них такое
есть моменты когда они он

from
06.05.2018
21:05:18

Andrew
06.05.2018
21:05:40
но в 90 процентах хватает промисов с асинк авейт

from
06.05.2018
21:05:57

Andrew
06.05.2018
21:06:01
ну в редакс сагах норм дока
например там есть дебаунс
или можно пока первый запрос не прошел

Google

Andrew
06.05.2018
21:06:35
второй не отправлять
в плане while true и тд

from
06.05.2018
21:06:59
редакс саги meh

Nutscracker
06.05.2018
21:07:10
я бы не сказал что они изи..принцип работы понятен. Но вот когда начинаются дебри, типа генератор функция возвращает итерируемый обьект - ок, допустим ты знаешь что такое итератор и что ты можешь его переопределять вроде даже. Ну хорошо а когда пишут такой код var a = iterator(); var b = [...a]; у меня волосы на заднице начинают шевелиться...

Andrew
06.05.2018
21:07:21
я вообще за most ?

Дмитрий
06.05.2018
21:07:26

Nutscracker
06.05.2018
21:08:13
то есть получается спред итерирует внутри обьект генератора?

from
06.05.2018
21:08:20

Тарас
06.05.2018
21:08:47
зачем к нему привыкать )))

from
06.05.2018
21:08:51
а вот риал-лайф-кейс придумать дельный вопрос)
Но думаю стоит остановиться на том, что кому-то это просто нравится

Тарас
06.05.2018
21:09:06
стнтаксис должен быть удобным

Andrey
06.05.2018
21:09:23

from
06.05.2018
21:09:36

Andrey
06.05.2018
21:09:48
Ну, к примеру, чтобы обрабатывать коллекции. И не пересоздавать список после каждой итерации.

from
06.05.2018
21:09:59

Nutscracker
06.05.2018
21:10:19
хороший код, это простой код. Можно такую хитрожопую хрень написать на регулярках или рекурсиями мега красивую и ходить гордиться..но кому она будет нужна когда придет другой программист почешет репу и поймет что легче заново переписать...

Тарас
06.05.2018
21:10:57

from
06.05.2018
21:10:59

Andrew
06.05.2018
21:11:16
async function() {
for (const number of searchPhoneNumbers(text, 'US')) {
console.log(number)
await new Promise(resolve => setTimeout(resolve, 0))
}
console.log('Finished')
}

Andrey
06.05.2018
21:11:24
чегооо
list.map().filter().map().filter().first(). эта цепочка будет ленивой и не пересоздаются коллекции на каждый чих.

Google

Andrew
06.05.2018
21:11:27
вот забавный кусочек
для поиска номер в тексте

Andrey
06.05.2018
21:11:46
Так устроены LINQ в шарпе или же стримы в джаве.

Тарас
06.05.2018
21:11:56
ого await new Promise ))

from
06.05.2018
21:12:00

Andrew
06.05.2018
21:12:36
ну так оно как я понял что б не блокировать основной поток

Тарас
06.05.2018
21:12:38
далеко шагнет наука.. )))

from
06.05.2018
21:12:47

Andrew
06.05.2018
21:13:08
на каждый номер создает новый промис
и ждет его резолва

from
06.05.2018
21:13:20

Andrew
06.05.2018
21:13:58
та ни при чем
просто говорили вроде за итерации
по коллекциям
или я чет пропустил

Andrey
06.05.2018
21:14:33
function map(mapper) {
return function* (list) {
for (let el of list) {
yield mapper(el)
}
}
}

Nutscracker
06.05.2018
21:14:44
я говорил за то что функция генератор при вызове возвращает итерируемый обьект

Andrey
06.05.2018
21:15:09
Как-то так.

from
06.05.2018
21:17:01

Andrey
06.05.2018
21:17:16

Google

from
06.05.2018
21:17:31

Andrey
06.05.2018
21:17:39
Омг.

from
06.05.2018
21:18:02
ну полез объяснять — объясняй понятно))
а лучше б рабочий пример привёл вообще

Nutscracker
06.05.2018
21:23:44
в генераторах у меня самый большой wtf? вызывает вот такой вот код http://prntscr.com/jejwhn

Andrey
06.05.2018
21:24:48
Дибилы, сер.

Artem
06.05.2018
21:25:49
ну по идеи, можно запускать вычесление по стадиям, когда нужно

Nutscracker
06.05.2018
21:28:13
имхо наркомания...значит ты передаешь аргумент в next и он становится результатом последнего выполненного yield

from
06.05.2018
21:32:53

Nutscracker
06.05.2018
21:33:36

from
06.05.2018
21:33:56

Artem
06.05.2018
21:33:56

Andrew
06.05.2018
21:34:41
for of же вроде

Nutscracker
06.05.2018
21:35:40

Artem
06.05.2018
21:38:01
немного не понял о чём ты

Andrey
06.05.2018
21:38:37

Nutscracker
06.05.2018
21:40:05
немного не понял о чём ты
я говорю о примере выше. Что если ты вызовешь функци next без аргумента она вернет тебе результат следующего yield. если ты передашь туда аргумент который ты собственно нигде не указываешь, то функция остановит стандартный поток выполнения, и вернет последний пройденный тобой yield подставив как результат туда - то что ты ей передал
а потом еще вызовет следующий yield
если я все правильно понял

Google

Nutscracker
06.05.2018
21:47:39
мля функция не возвращает а переприсваивает значения внутри

Prester John
06.05.2018
21:48:20
Не важно, вызвал ты next с аргументом или без, вернётся следующий yield
Ты вроде не так описал, было сложно понять

Andrew
06.05.2018
21:50:27
ты и не знаешь что промис вернет

Nutscracker
06.05.2018
21:50:36

Andrew
06.05.2018
21:50:44
может ошибку
может говно какое-то с апи

Nutscracker
06.05.2018
21:51:01

Andrew
06.05.2018
21:51:26
ну а что он вернет в обещании
мы не можем знать
это вообще проблема всех сайд эффектов

Nutscracker
06.05.2018
21:52:20

Andrew
06.05.2018
21:52:27
может он она вернет данные, но с другми полями и тд
ну так а что в генераторах не явного тогда ?
это просто как бы замороженный вызов функции

Nutscracker
06.05.2018
21:54:20
я понимаю как работают генераторы, я не понимаю почему при передаче аргумента в next он там чето переприсваивает без моего ведома. Как потом такой код читать если он сложный или отлаживать
вот если сделать совсем маленькое изменение в примере и добавить логику чтобы результат первого yield использовался дальше в вычислениях перед тем как отдать второй yield - это ж крыша уедет разбираться wtf там творится

Artem
06.05.2018
21:59:36

Сергей
06.05.2018
22:02:55