Правильно ли сравнивать генераторы, промисы и async/await?
Читаю про генератор, и понять не могу, как они работают
Единственное что понял, они тормозят выполнение кода, то есть как бы асинхронный код делают как бы синхронным. У меня есть потребность в таком, думаю у всех она есть, потому как через функции обратного вызова, код выглядит не комильфо. И тогда зреет вопрос, зачем придумали и ввели эти самые генераторы, что они призваны решить, и почему следом за ними я слышу про промисы и async/await
Допустим я разрабатываю на сервере, и поддержка браузерами мне не нужна, то на чем остановиться?
Правда ли что за async/await будущие, и что генераторы и обещания всего лишь предвестники async/await? Как раз и навсегда разобраться в столько непростом вопросе, как правильно относится к нововведениям, что стоит использовать, а от чего советуете отказаться
Чем между собой отличаются все три названных способа?
Генераторы - это одно, промисы/async/await - другое. Генератор по сути - функция, которая запоминает свое внутреннее состояние (1, 2, 3). Генераторы нужны для создания "сложных" последовательностей.
Async/await (1, 2) задуманы как альтернатива промисам, т.к. промисы хоть и решают проблему callback hell, но все равно сложны для чтения. При этом async/await все еще экспериментальный функционал, поэтому без Babel тут не обойдешься (который собственно сведет async/await к промисам).