Ejemplo tweets con Callbacks en jQuery


// VAMOS A BUSCAR UN JSON
// parte 1: Un nuevo Callback
$.ajax({
  url: '//jsbin.com/cinuna/6.json',
  dataType: 'json',
  success: function(response){
              var json = response;
              /* Nos devuelve el siguiente json
                { tweets:
                    user: "LaViejaDeLaEsquina.com",
                    [
                      "//jsbin.com/cinuna/4.json",
                      "//jsbin.com/cinuna/5.json"
                    ]
                }
              */

              // VAMOS A BUSCAR UN JSON
              // parte 2: El Callback contraataca
              $.ajax({
                url: json.tweets[0], // "//jsbin.com/cinuna/4.json"
                dataType: 'json',
                success:  function(response){
                            var tweet1 = response;
                            // Nos devuelve el siguiente json
                            /* {body: "#MasterChefMenudeReyes Charquicán
                             (pero ÉSE Charquicán, con longaniza ¡con TODO!)"} */

                            // VAMOS A BUSCAR UN JSON
                            // parte 3: El retorno del Callback
                            $.ajax({
                              url: json.tweets[1], // "//jsbin.com/cinuna/5.json"
                              dataType: 'json',
                              success:  function(response){
                                          var tweet2 = response;
                                          // Nos devuelve el siguiente json
                                          /* {body: "A todo esto? En qué pasillo del Unimarc
                                           encuentro jabalí? #MasterChefMenuDeReyes"} */

                                          // Aqui esta el código que nos importa... ¬_¬
                                          console.log(tweet1,tweet2);
                                          // ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
                                        },
                              error: function(err){ console.log(err); }
                            });
                },
                error: function(err){ console.log(err); }
            });
  },
  error: function(err){ console.log(err); }
});
                
Promesas: Hello World
Promesas: Bomba asincrona
Promesas: AJAX
Promesas: Promise.all

Ejemplo tweets con Callbacks en jQuery


$.ajax({
  url: '//jsbin.com/cinuna/6.json',
  dataType: 'json',
  success: function(response){
              var json = response;
              $.ajax({
                url: json.tweets[0], // "//jsbin.com/cinuna/4.json"
                dataType: 'json',
                success:  function(response){
                            var tweet1 = response;
                            $.ajax({
                              url: json.tweets[1],
                              dataType: 'json',
                              success:  function(response){
                                          var tweet2 = response;
                                          console.log(tweet1,tweet2);
                                        },
                              error: function(err){ console.log(err); }
                            });
                },
                error: function(err){ console.log(err); }
            });
  },
  error: function(err){ console.log(err); }
});
                
Generadores: Hello World
Generadores: Generando Iteradores
Generadores: Iterando Iteradores
Generadores: Colecciones Flojas
Generadores: Insercion de Valores
Generadores: Control de Flujo
Generadores: Delegando Iteradores
Async / Await: tweets
Spawn: tweets

Podemos pensar en estas caracteristicas de ES2015/2016

de la siguiente manera:


Sync Async
function T Promise
function* Iterator ???

La pregunta es: "que nos devuelve un generador asincrono?"