Здравствуйте, Dair, Вы писали:
D>А в чём принципиальное отличие от async/await?
Я читал что оно есть, но похоже так толком и не понял в чем (не смогу "объяснить шестилетнему ребенку").
Насколько я понял, async/await — это частный случай короутин, который легко понять и использовать.
В случае async/await "вложенность" ожидания идет по вызовам. В этом случае код получается практически линейным, легким для понимая (и в то же время не-блокирующий, т.е. асинхронный)
В случае же ко-роутин вложенность может быть любая, или ее вообще может не быть. То есть, насколько я, опять же, понимаю,
это вообще может быть линейный код, без вызовов функций, с исполнением просто прыгающим из одного места в другое.
Или две функции могут исполняться "параллельно" с исполнением перепрыгивающим из одной в другую.
Генераторы — это калька того что есть в других языках, это не о том.
Найти статью показывающую "на пальцах" преимущество ко-роутин перед "банальным" async/await у меня не получилось.
Было бы интересно если бы кто пояснил в чем их крутость на простом примере (желательно без кода)