node.js使用async.auto

async库官方文档:

https://caolan.github.io/async/v3/

 

下载async库源代码:

https://raw.githubusercontent.com/caolan/async/master/dist/async.js

 

示例:

 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
<script type="text/javascript" src="async.js"></script>
<script>
console.log('先引入async.js')
console.time("async.auto"); 
async.auto({ 
  task1: function(callback){ 
    console.log("tsak1 start"); 
    setTimeout(function(){ 
      callback(null, 'task1-结果1', 'task1-结果2'); 
    },2000); 
  }, 
  task2: function(callback){ 
    console.log('task2 start'); 
    setTimeout(function(){  
      callback(null, 'task2-结果1'); 
    },3000); 
  }, 
  task3: ['task1', 'task2', function(results, callback){ 
    console.log('task3依赖task1和task2')
    console.log('task3 start');  
    console.log(
      `在task3里可以通过results读取task1和task2的结果,
  task1的结果:${results.task1}
  task2的结果:${results.task2}`
    )
    setTimeout(function(){  
      callback(null, 'task3-结果1', 'task3-结果2');
    },1000); 
  }], 
  task4: ['task3', function(results, callback){ 
    console.log('task4依赖task3')
    console.log('task4 start'); 
    console.log(
      `在task4里可以通过results读取task1、task2、task3的结果,
  task1的结果:${results.task1}
  task2的结果:${results.task2}
  task3的结果:${results.task3}`
    )
    setTimeout(function(){ 
      callback(null, {
        'task4-结果1':results.task3, 
        'task4-结果2':'task4-结果2'
      }); 
    },1000); 
  }] 
}, function(err, results) { 
  console.log('err为 :', err); 
  console.log('最终results为 : ', results); 
  console.log('用时为:')
  console.timeEnd("async.auto"); 
}); 
</script>
</html>

 

posted @ 2021-04-03 22:25  starlog  阅读(168)  评论(0)    收藏  举报