Home  >  Article  >  Web Front-end  >  Nodejs async asynchronous common function examples sharing

Nodejs async asynchronous common function examples sharing

小云云
小云云Original
2018-01-18 13:20:501475browse

This article mainly introduces the relevant information about the summary of commonly used asynchronous functions in nodejs async. Friends who need it can refer to it. I hope it can help everyone.

There are many nodejs framework libraries. "Process control" is originally a relatively simple matter, but for the implementation of nodejs's asynchronous architecture and business logic that requires synchronization, it is more troublesome to implement.

Async’s collection control:


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 The values ​​of .length and arr.length are equal;

Execute an asynchronous function function for each item in the array arr to get the result. All results will be summarized in the final callback;

async process control:

async.series(tasks,callback);Multiple functions are executed in sequence, with no data between them Swap

##

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){}

Serial execution, each function in a function array is executed After that, the next function is executed, callback(err, results); err returns error information, and results is the result set returned by multiple functions;

If any function passes a error, the following functions will not be executed, and the error and the results of the executed functions will be immediately passed to the last callback in the series

async.parallel(tasks,callback) ;Multiple functions executed in parallel;

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'];
 });
});

tasks: functionList;

callback:function(err, results) {}

tasks.length and results.length values ​​are equal

Execute multiple functions in parallel. Each function is executed immediately, without waiting for other functions to be executed first. Pass The data in the final callback array is in the order declared in tasks, not the order in which execution is completed;

If an error occurs in a function, err and the result value of the executed function will be passed immediately parallel final callback. The values ​​of other unexecuted functions will not be transferred to the final data, but they will occupy a place

async.whilst(test,function,callback); can be used to call while asynchronously

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
 });
 });

Related recommendations:


JS asynchronous function queue function example analysis

Get JavaScript Detailed explanation of return value examples of asynchronous functions

Detailed introduction to JavaScript asynchronous function development process code examples

The above is the detailed content of Nodejs async asynchronous common function examples sharing. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn