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>

浙公网安备 33010602011771号