Home  >  Article  >  Web Front-end  >  What functions are needed for nodejs async to be asynchronous?

What functions are needed for nodejs async to be asynchronous?

php中世界最好的语言
php中世界最好的语言Original
2018-04-14 16:06:261219browse

This time I will bring you what functions are needed for nodejs async asynchronous, nodejs async asynchronousWhat are the precautions when using functions , the following is a practical case, let’s take a look one time.

nodejs frameworkClass librariesThere are many, "Process Control" is originally a relatively simple thing, but for the implementation method of nodejs's asynchronous architecture, for those who need to synchronize Business logic is more troublesome to implement.

async 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.length is equal to arr.length;

For each item in the array arr, execute an asynchronous function function and get the result. All results will be summarized in the final callback;

async process control:

async.series(tasks,callback); Multiple functions are executed sequentially without data exchange

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

Serial execution, after each function in a function array is executed, the next function is executed, callback (err, results); err returns error message , results are the result set returned by multiple functions ;

If any function passes an error to its callback function, 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 are executed in parallel;

app.get('/testParallel',function(req, res){

tasks: functionList;
callback: function(err, result){}

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. The data passed to the final callback array is in the order declared in tasks, rather than completed. Order;

If an error occurs in a function, err and the result value of the executed function are immediately passed to parallel's 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

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

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related topics on the PHP Chinese website article!

Recommended reading:

Detailed explanation of the use of v-on events in Vue.js

nodejs video streaming based on ffmpeg live streaming

The above is the detailed content of What functions are needed for nodejs async to be asynchronous?. 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