node的异步io虽然好用,但是控制异步流程确实一个比较麻烦的事情,比如在爬虫中控制并发数量,避免并发过大导致网站宕机或被加入黑名单。因此需要一个工具来控制并发,这个工具可以自己写或者使用async(官方文档点击这里)。代码基于node 8.x,如版本过低可能会出现错误。

说明

async本身有七十多个方法,这里只说明几个比较常用的简单函数用法,想进一步学习可参考文档。总的来说分为两大类。

一、第一个参数为​​函数集合,也​​就是遍历执行集合中的函数。

1.顺序执行 series(tasks , function(err,res){ })

tasks为函数数组,数组中的每一项都为待执行函数。

a.下面是一个最简单示例,待执行函数为非异步
  1. const asyncx = require( 'async' );
  2.  
  3. let tasks = [];
  4. for( let i = 0 ; i < 10 ; i++ )
  5. {
  6. tasks.push(
  7. function( callback ){
  8. //dosomething
  9. console.log( i );
  10. //本函数用来通知async本次任务完成情况,并把结果带出去。
  11. callback( null , i ); //第一个参数为异常参数,如果传入一个error( 比如new Error('error') ),并发结束,调用series里的回调。
  12. }
  13. )
  14. }
  15. asyncx.series( tasks , function(err , res ){
  16. if( err )
  17. console.log( err );
  18. console.log( res );
  19. } )

运行结果

aaarticlea/png;base64,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" alt="" />

b.待执行函数为异步

如果待处理的函数也是异步函数可将callback参数传入到异步函数中,在真正结束的时候调用callback。

  1. const asyncx = require( 'async' ); //模块命名为asyncx避免和es7中的async/await冲突
  2.  
  3. let tasks = [];
  4. for( let i = 0 ; i < 10 ; i++ )
  5. {
  6. tasks.push(
  7. function( callback ){
  8. setTimeout( function(){
  9. console.log(i);
  10. callback( null , 1 ); //在这里整个处理才是真正完成,然后调用callback通知async本任务结束
  11. } , 2000 );
  12. }
  13. )
  14. }
  15. asyncx.series( tasks , function(err , res ){
  16. if( err )
  17. console.log( err );
  18. console.log( res );
  19. } )

如果想要在任务中使用es7的async/await 可将待处理代码放在一个闭包中(直接在function前加async会报错),下面示例。

  1. const asyncx = require( 'async' ); //模块命名为asyncx避免和es7中的async/await冲突
  2.  
  3. let tasks = [];
  4. for( let i = 0 ; i < 10 ; i++ )
  5. {
  6. tasks.push(
  7. function( callback ){
  8. (async function(){
  9. let sum = await doSomething( i );
  10. callback( null , sum );
  11. })();
  12. }
  13. )
  14. }
  15.  
  16. async function doSomething( i ){
  17. return new Promise( function( resolve , reject ){
  18. setTimeout(function(){
  19. console.log( i );
  20. resolve( i );
  21. } , 1000 );
  22. } );
  23. }
  24.  
  25. asyncx.series( tasks , function(err , res ){
  26. if( err )
  27. console.log( err );
  28. console.log( res );
  29. } )
2.并发执行 parallel( tasks , function(err,res){} )

参数如上,不限制并发

3.并发限制执行parallelLimit( tasks , num , function(err,res){} )

参数同上,num为最大并发数量

二、第一个参数为非​​​​函数集合。

比如

  1. async.map(['file1','file2','file3'], function(item,callback){
  2. //dosomething
  3. callback( null , 'done' );
  4. }, function(err, results) {
  5. // results is now an array of stats for each file
  6. });

第二个参数为一个异步函数,要能接受两个参数item(前面集合中的一项),callback 通知async任务完成

还有其他的函数用法都是类似只是具体作用不一样。可参考官方文档说明。

async简单使用的更多相关文章

  1. es6,async简单总结

    1.简单来讲就是把函数变为异步操作的 async function demo() { let result = Math.random(); console.log(result); } 2.asyn ...

  2. 从0到1学习node(七)之express搭建简易论坛

    我们需要搭建的这个简易的论坛主要的功能有:注册.登录.发布主题.回复主题.下面我们来一步步地讲解这个系统是如何实现的. 总索引: http://www.xiabingbao.com/node/2017 ...

  3. 对Promise的一些深入了解

    1.介绍promise和模仿Promise.all和Promise.race promise的设计主要是解决回调地狱(接收结果用回调函数来处理,但必须传入回调函数)的问题,由一层层嵌套回调函数改为由t ...

  4. 【转】【C#】C# 5.0 新特性——Async和Await使异步编程更简单

    一.引言 在之前的C#基础知识系列文章中只介绍了从C#1.0到C#4.0中主要的特性,然而.NET 4.5 的推出,对于C#又有了新特性的增加--就是C#5.0中async和await两个关键字,这两 ...

  5. @Async的简单用法总结

    前言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在处理与第三方系统交互的时 候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在Spring 3 ...

  6. 异步async/await简单应用与探究

    感谢Marco CAO指出的两点错误,已做出修改与补充 异步函数(async/await)简单应用 .NET Framework4.5提供了针对异步函数语法糖,简化了编写异步函数的复杂度. 下面通过一 ...

  7. 转:[你必须知道的异步编程]C# 5.0 新特性——Async和Await使异步编程更简单

    本专题概要: 引言 同步代码存在的问题 传统的异步编程改善程序的响应 C# 5.0 提供的async和await使异步编程更简单  async和await关键字剖析 小结 一.引言 在之前的C#基础知 ...

  8. [你必须知道的异步编程]C# 5.0 新特性——Async和Await使异步编程更简单

    本专题概要: 引言 同步代码存在的问题 传统的异步编程改善程序的响应 C# 5.0 提供的async和await使异步编程更简单  async和await关键字剖析 小结 一.引言 在之前的C#基础知 ...

  9. HTML 5 <script> async 属性简单设置代码异步执行

    HTML5中 script标签支持脚本的异步执行async.脚本将会异步运行: <script type="text/javascript" src="demo_a ...

随机推荐

  1. Go语言学习笔记(三)数组 & 切片 & map

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 数组 Arrays 数组是同一种数据类型的固定长度的序列. 数组是值类型,因此改变副本的值,不会改变本身的值: 当 ...

  2. Ambari安装之部署单节点集群

    前期博客 大数据领域两大最主流集群管理工具Ambari和Cloudera Manger Ambari架构原理 Ambari安装之Ambari安装前准备(CentOS6.5)(一) Ambari安装之部 ...

  3. Jenkins: 执行 PowerShell 命令

    Jenkins 默认是不支持执行 PowerShell 命令的,需要安装插件才能完成这样的任务.本文将介绍 Jenkins PoserShell 插件的基本用法和常见问题. 安装 PowerShell ...

  4. Spark笔记——技术点汇总

    目录 概况 手工搭建集群 引言 安装Scala 配置文件 启动与测试 应用部署 部署架构 应用程序部署 核心原理 RDD概念 RDD核心组成 RDD依赖关系 DAG图 RDD故障恢复机制 Standa ...

  5. STK卫星工具箱下载

    简介 STK的全称是Satellite Tool Kit(卫星工具箱),STK/Pro 9.0最新出品,完整版,是由Analytical Graphics公司开发的一款在航天工业领域中处于绝对领先地位 ...

  6. python数据结构之队列

    队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 队列是一种先进先出的(First In First Out)的线性表,简称FIFO.允许插入的一端为队尾,允许删除的一端 ...

  7. Windows7 下安装 tersorflow

    最近看起深度学习的一些知识,想要学习一个框架.在网上看了别人对这些框架的评比后,决定学习 tersorflow.之前一直以为 tersorflow 只可以在 Linux 下安装,出乎意料的是,Wind ...

  8. jsp 重定向技术

    页面重定向之后,request对象的属性全部失效,生成一个新的requeset对象

  9. EL与JSTL

    1.EL 只要web服务器支持Servlet2.4/JSP2.0就可以在JSP页面中直接使用EL表达式.但是为了和过去版本兼容,可以禁止使用EL表达式.EL作用域及其禁用方法如下: EL的基本语法为$ ...

  10. Stacked Regression的详细步骤和使用注意事项

    声明:这篇博文是我基于一篇网络文章翻译的,并结合了自己应用中的一些心得,如果有侵权,请联系本人删除. 最近做推荐的时候,开始接触到Stacking方法,在周志华老师的西瓜书中,Stacking方法是在 ...