Maison > Article > interface Web > Quelles fonctions sont nécessaires pour que nodejs async soit asynchrone ?
Cette fois, je vais vous apporter quelles fonctions sont nécessaires pour nodejs async async. Quelles sont les précautions pour utiliser la fonction asynchrone de nodejs Voici les cas pratiques. Jetons un coup d'oeil une fois. Il existe de nombreux
frameworks nodejsbibliothèques de classes "Process Control" est à l'origine une chose relativement simple, mais pour la mise en œuvre de l'architecture asynchrone de nodejs, pour ceux-là. qui ont besoin de synchronisation La logique métier est plus difficile à mettre en œuvre.
Contrôle de collecte asynchrone :
async.map(arr, function(item, callback){},callback(err, results){});async.mapSeries
app.get('/testMap',function(req, res){ var arr = [0,1,2,3,4,5,6]; async.mapSeries(arr,function(item, callback){ (function(){ callback(null, item+1); }()); },function(err, results){ console.log(results);//[1,2,3,4,5,6,7]; }); });
results.length est égal à arr.length;
Pour chaque élément du tableau arr, exécutez une fonction asynchrone pour obtenir le résultat. Tous les résultats seront résumés dans le rappel final ;
contrôle de processus asynchrone :
async.series(tasks,callback); Plusieurs fonctions sont exécutées séquentiellement sans échange de données entre elles
app.get('/testSeries',function(req, res){ async.series([ function(callback){ callback(null,'function1'); },function(callback){ callback(null, 'function2') },function(callback){ callback(null, 'function3'); }],function(err, results){ console.log(results);//['function1','function2','function3']; }); });
tasks: functionList; callback: function(err, result){}
Exécution en série, après l'exécution de chaque fonction d'un tableau de fonctions, la fonction suivante est exécutée, callback(err, results); err renvoie message d'erreur , results est l'ensemble de résultats renvoyé par plusieurs fonctions ;
Si une fonction transmet une erreur à sa fonction de rappel , les fonctions suivantes ne seront pas exécutées, et l'erreur et les résultats des fonctions exécutées seront immédiatement transmis au dernier rappel de la série
async.parallel(tasks,callback); Plusieurs fonctions sont exécutées en parallèle ;
app.get('/testParallel',function(req, res){
async.parallel([ function(callback){ callback(null,'function1'); },function(callback){ callback(null, 'function2') },function(callback){ callback(null, 'function3'); }],function(err, results){ console.log(results);//['function1','function2','function3']; }); });
tâches : liste de fonctions ;
rappel :fonction (erreur, résultats){}
tâches.longueur et résultats.longueur sont égaux
Exécuter plusieurs fonctions en parallèle. Chaque fonction est exécutée immédiatement, sans attendre que les autres fonctions soient exécutées en premier. Les données transmises au tableau de rappel final sont dans l'ordre déclaré dans les tâches, plutôt que terminées. . La commande ;
Si une erreur se produit dans une fonction, err et la valeur du résultat de la fonction exécutée sont immédiatement transmises au rappel final de Parallel. Les valeurs des autres fonctions non exécutées ne seront pas transférées aux données finales, mais elles occuperont une place
async.whilst(test, function, callback); peut être utilisé pour appeler de manière asynchrone while
app.get('/testWhilst',function(req, res){ var count = 0; async.whilst(function(){ if(count < 3) return true; },function(callback){ (function(){ count++; callback(null); }()); },function(err){ console.log(count);//3 }); });
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. informations passionnantes, veuillez prêter attention au site Web chinois php Autres articles connexes !
Lecture recommandée :
Explication détaillée de l'utilisation des événements v-on dans Vue.js
streaming vidéo nodejs basé sur la diffusion en direct ffmpeg
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!