Comments 17
Такая реализация требует от кодогенератора создавать state machine, что сильно усложняет весь процесс компиляции.
Не сильнее, чем необходимость использования транспайлеров или обходных маневров усложняет процесс разработки. Тем более, что эта фича много лет как реализована и обкатана в массе других языков программирования — так что это не challenge, а просто объемный кусок работы.
+3
Для TypeScript обычно новые фичи так и реализуются: сначала релиз с поддержкой только ES 6 как цели компиляции, а следующий релиз уже поддерживает перекомпиляцию в ES 5.
+2
Не нужны там никакие стейт машины: гораздо лучше превращать всё в вызовы then. Пример уже есть: github.com/MatAtBread/nodent. Превращать async/await в конечный автомат — знатное извращение, но реализовать это проще если считать, что поддерживать yield всё равно надо (а тут уж без конечного автомата никак), а превращение async/await в yield — тривиальное. Вообщем типичный программёрский приём: сначала возьмём чайник с плиты и выльем воду (сведём задачу к уже решенной), после чего нальём воду обратно, вернём чайник на плиту и закипятим его (применим уже готовое решение).
0
Видел этот коммит по возведению в степень, не думал, что целиком заапрувят, по-моему конструкция
Таким образом для единообразности тогда надо и тригонометрические функции добавить, например, вычисление синуса будет делаться вот так:
num **= 2
— это уже перебор, это уже надругательство над иммутабельностью. Таким образом для единообразности тогда надо и тригонометрические функции добавить, например, вычисление синуса будет делаться вот так:
num Sin=
+2
Приятно видеть, что TypeScript тоже не стоит на месте, будем использовать async / await теперь
+1
Как я написал в посте, сейчас async/await реализуется строго через ES6 генераторы. Можно использовать babel для последующей генерации ES5 с нужным рантаймом. Или подождать версии 2.0, где обещают async/await для ES5 — возможно там будет возможность выбора рантайма. А возможно и не будет — трудно предсказывать будущее :)
0
Не, вы меня не поняли. У async/await в ES6 толжен быть враппер/бэкенд/рантайм, как хотите называйте.
На выходе код выглядит как-то так:
Вот мой вопрос прост — можно ли подменить функцию
На выходе код выглядит как-то так:
asyncToGenerator(function *() {
yield something();
});
Вот мой вопрос прост — можно ли подменить функцию
asyncToGenerator
на нужную мне. Я просто пока не использую TS, не знаю какие возможности настраивать компилятор, но хочу начать, потому спрашиваю.0
Sign up to leave a comment.
Релиз typescript 1.7