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

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

php中世界最好的语言
Libérer: 2018-04-14 16:06:26
original
1302 Les gens l'ont consulté

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
Copier après la connexion
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];
 });
 });
Copier après la connexion

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'];
 });
 });
Copier après la connexion
tasks: functionList;
callback: function(err, result){}
Copier après la connexion

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'];
 });
});
Copier après la connexion

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
 });
 });
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal