Uso de nuevas características de javascript (ES6) para hacer operaciones asíncronas de forma estructurada.
// El uso de generadores aún no está estandarizado. 25/10/2015
// Requiere generators.js
// El asterisco '*' lo define como generador
// yield detiene el procedimiento hasta que pueda continuar
// Librerias: bluebird para frontend -usado en el ejemplo-, co para bakcend node.js, q para angular
Promise.coroutine(function* () {
var user = yield $.get('user.json');
// Do stuff with user
var posts = yield $.get( 'posts.json?id=' + user.id );
// Do stuff with posts
var comments = yield $.get( 'comments.json?post_id=' + post.id );
// Do stuff with comments
})().catch(function( errs ) {
// Do stuff with errors
});