Ответ 1
Текущее (и, скорее всего, окончательное) предложение async/await ожидает promises и desugars в нечто вроде bluebird Promise.coroutine
с await
, играющим часть yield
.
Это имеет смысл, так как promises представляет значение + время, и вы ожидаете, что это значение станет доступным. Примечание. await
также ожидает выполнения обещаний, подобных конструкциям, на всех других языках, которые включают его как С# или Python (3.5+).
Обратите внимание, что преобразование API обратного вызова в promises очень просто, а некоторые библиотеки предлагают инструменты для этого в одной команде. См. Как преобразовать существующий API обратного вызова в promises для более подробной информации.