А ты уверен в терминологии?
В Python и C# Futures используется для параллельного запуска задач, мне кажется больше похоже на Promises (если не брать во внимание многопоточность), даже не так: Promises частный случай Futures получается.
async-await в ES7 это реализация на уровне языка следующей конструкции:
co(function * () {
var result = yield request();
result… //здесь можно использовать result;
});
подробнее про
принцип работы co
будет:
async function () {
var result = await request();
result… //здесь можно использовать result;
}
await всегда ждет promise, сам yield не обладает никакой асинхронностью, это просто точка выхода, тут опять все завязано на промисах