Maison  >  Article  >  interface Web  >  Quelles fonctions sont nécessaires pour que nodejs async soit asynchrone ?

Quelles fonctions sont nécessaires pour que nodejs async soit asynchrone ?

php中世界最好的语言
php中世界最好的语言original
2018-04-14 16:06:261256parcourir

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

nodejs async异步常用函数总结(推荐)

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn