|
|
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
Подскажите где ошибаюсь пишу (использую библиотеку co()) Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. исполняется только f1() OK? тогда так, без co() Код: javascript 1. 2. 3. 4. эффект тот же. Я понимаю, что я что-то не понимаю. Но не понимаю что именно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2019, 11:50 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
Лысый дядька, кто-то ещё на саблимке сидит ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2019, 21:56 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
hVosttЛысый дядька, кто-то ещё на саблимке сидит ) Неа, не сижу. :) Просто дома не работаю принципиально и поэтому установленных IDE под рукой нет, а сижу (и плотно) на линейке продуктов от JetBrains, куплен весь пакет тащемта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2019, 22:12 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
Лысый дядькаа сижу (и плотно) на линейке продуктов от JetBrains, куплен весь пакет тащемта лойс :) аналогично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2019, 23:18 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
Лысый дядька, Спасибо, нашёл ошибку. Но библиотека co() всё равно почему то неправильно работает. Может не там взял? Вызывает только первую функцию. А при вызове последовательно методами next() всё нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2019, 09:51 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
sergnnНо библиотека co() всё равно почему то неправильно работает. А что вообще вы хотите добиться? Я не увидет какого-то профита от использования этой тулзы, наоборот, она только запутывает и усложняет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2019, 10:24 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
Лысый дядька, Есть блок в программе, где несколько действий должны выполняться последовательно (синхронно). Но количество действий должно в последствии увеличиваться. co() вроде как сама должна высчитать число вызовов метода next() А так надо не забыть в случае дополнения добавить ещё вызов next(). Если забыть, то потом ошибку искать утомительно будет. Тем более, что блок дописывать буду не только я. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2019, 11:41 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
sergnnЛысый дядька, Есть блок в программе, где несколько действий должны выполняться последовательно (синхронно). Но количество действий должно в последствии увеличиваться. co() вроде как сама должна высчитать число вызовов метода next() А так надо не забыть в случае дополнения добавить ещё вызов next(). Если забыть, то потом ошибку искать утомительно будет. Тем более, что блок дописывать буду не только я. Честно говоря, не понял ничего. Каким образом co может вычислить количество вызовов метода next? Это в неё надо как-то передать? И чем это отличается от простого цикла со счетчиком? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2019, 11:48 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
Лысый дядька, описание работы с co() взято отсюда: https://habr.com/ru/company/piter/blog/434360/ Может я что-то неправильно понял. Не могу себя назвать крутым знатоком скрипта. Основная моя стезя Java + SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2019, 13:05 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
sergnnЛысый дядька, описание работы с co() взято отсюда: https://habr.com/ru/company/piter/blog/434360/ Может я что-то неправильно понял. Не могу себя назвать крутым знатоком скрипта. Основная моя стезя Java + SQL Вы как-нибудь иначе сформируйте свою задачу. Она наверняка решается элементарно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2019, 13:29 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
Лысый дядька, Ок. Есть несколько функций, которые должны выполнятся последовательно. Ибо выполнять или не выполнять следующую зависит от результата исполнения предыдущей. А в функциях есть длительные операции вроде запроса данных с сервера или получения электронной подписи на клиенте. Понятно, что это решается с помощью обратных вызовов, но если этих функций более нескольких штук, то код становится просто жутко не читаемым. Тем более если нужно добавить ещё одно действие, то вставлять дополнительный уровень обратных вызовов получается слишком уж коряво. Вот с помощью генераторов это в принципе решается, но есть маленькая проблем описанная выше. то есть при добавлении новой функции нужно не забыть добавить вызов метода генератора next(). Собственно не проблема, но хочется поэлегантнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2019, 14:15 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
sergnnОк. Есть несколько функций, которые должны выполнятся последовательно. Ибо выполнять или не выполнять следующую зависит от результата исполнения предыдущей. А в функциях есть длительные операции вроде запроса данных с сервера или получения электронной подписи на клиенте. Понятно, что это решается с помощью обратных вызовов, но если этих функций более нескольких штук, то код становится просто жутко не читаемым. Тем более если нужно добавить ещё одно действие, то вставлять дополнительный уровень обратных вызовов получается слишком уж коряво. Вот с помощью генераторов это в принципе решается, но есть маленькая проблем описанная выше. то есть при добавлении новой функции нужно не забыть добавить вызов метода генератора next(). Собственно не проблема, но хочется поэлегантнее. Ух!!!! Дык промисы же для этого самого и придуманы! Вы про генераторы знаете, а про промисы нет? Гуглите "ES6 Promise" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2019, 14:46 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
Лысый дядька, Дык ведь генераторы по сути промисы и возвращают. По идее это развитие промисов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2019, 16:10 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
sergnnЛысый дядька, Дык ведь генераторы по сути промисы и возвращают. По идее это развитие промисов. В вашей задаче вы боитесь (и справедливо) ада коллбэков. Промисы решают этот вопрос цепочкой then-вызовов, при чем тут генераторы? Вы хотите последовательно вызвать несколько асинхронных функций, одна после завершения другой, это делается вот так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2019, 16:27 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
Лысый дядька, Спасибо, посмотрю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2019, 17:26 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
Лысый дядька, И всё таки с генераторами код мне кажется более читаемым. Хотя конечно дело вкуса и привычки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2019, 09:58 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
sergnnИ всё таки с генераторами код мне кажется более читаемым. Хотя конечно дело вкуса и привычки. Читаемый код получается с async/await ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2019, 11:56 |
|
||
|
JavaScript генераторы. Вопрос.
|
|||
|---|---|---|---|
|
#18+
Лысый дядька, использование библиотеки со() приводит вариант с генераторами почти к виду async/await только вот почему то не работает зараза. Кстати для использования async/await нужно тоже доп. библиотеку грузить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2019, 11:59 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=39774365&tid=1443872]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 498ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...