https://github.com/lukehoban/ecmascr...nd-parallelism
async function getData() {
var items = await fetchAsync('http://example.com/users');
// Внутри async асинхронные операции похожи на синхронные,
// поэтому можно юзать try-catch для отлова исключений
console.log(items);
}
Такой подход оч удобен и используется во многих языках, например С# или Go.
Юзать уже можно сейчас (но на свой страх и риск, т.к. стандарт может поменяться в любой момент), т.к. подобных механизм делается на основе генераторов, а 6to5 поддерживает эту фичу.
http://6to5.org/repl/
А можно юзать
co (поддерживается вплоть до ES5 с помощью полифилов)