Доклад про генераторы породил довольно продолжительную дискуссию о их пригодности к использованию в чем либо, кроме ленивой генерации последовательностей.
Первой задачей, которая не была решена на митапе, была проблема чтения файла, представленного потоком, построчно, с использованием генераторов (речь, конечно же, про node.js).
Вторая проблема — пример с AJAX содержал слишком много зависимостей и „все кишки наружу“. Использовать в таком виде — невозможно.
В итоге мне удалось придумать решение для обоих проблем. По потоку „клиентский“ код получился такой:
А „синхронную асинхронность“ удалось упаковать до следующего кода:
В последнем примере есть ограничение: асинхронная операция должна возвращать Promise. Все остальное трактуется как синхронный вызов.
Конкретная реализация оберток доступна в виде Gist’а, живой пример с „асинхронностью“ доступен на jsFiddle.