Intermédiaire
Soit les 2 fonctions suivantes getMovie
et run
:
const Qajax = require('qajax'); // Librairie basée sur Q, permettant de faire des promesses en HTTP
// Retourne une promesse HTTP sur l'url en paramètre
function getMovie(url) {
return Qajax.getJSON(url);
}
// Démarre le générateur en paramètre et récupère une promesse
function run(generator) {
var iterator = generator();
function go(result) {
result.value.then(function(value) {
go(iterator.next(value))
});
}
go(iterator.next());
}
Que va t-il se passer lorsque le code suivant sera appelé :
run(function *() {
let mov1 = yield getMovie('https://api.myjson.com/bins/3hn4g'); // {id:1, title:'Back to the future'}
let mov2 = yield getMovie('https://api.myjson.com/bins/1gro0'); // {id:2, title:'Matrix'}
let mov3 = yield getMovie('https://api.myjson.com/bins/53igg'); // {id:3, title:'Star Wars'}
console.log(mov1.id, mov1.title);
console.log(mov2.id, mov2.title);
console.log(mov3.id, mov3.title);
});
Auteur: Jean-marie CléryStatut : PubliéeQuestion passée 814 fois
Modifier
1
Évaluations de la communautéPersonne n'a encore évalué cette question, soyez le premier !
2
Comment obtenir le résultat de 3 fonctions asynchrones en NodeJS2
Quel est l'intrus dans la liste suivante : npm, yeoman, webpack, babel4
Laquelle de ces 4 solutions pour servir un fichier très volumineux sera la plus optimisée en termes de _ressources serveur_ et de _vitesse de chargement pour le client_?6
Analyser une chaîne de requête en un objet en NodeJS3
Écrire un serveur NodeJS qui retourne un message différent en fonction de la route.3
Un serveur de chat SocketIO simple, couplé à Express.10
Comment définir une variable globale avec Node.js?