什么时候会用到异步流程控制

    • 数据库
    • 工具类:比如爬虫

    一般说crud指的是增删改查,也可以指对某个表的增删改查。

    所以有一个概念叫dao(data access object),一般会先定义entity实体,然后定义该entity的dao。但大部分业务逻辑里,一个表的操作是不够的。

    然后有个一service层的概念,即组装多个dao来完成某一业务逻辑,成为service(不要和rpc服务的服务混了)。

    一般目录

    举例:发帖完成后,更新用户的发帖数

    • step 2:更新用户的发帖数

    更复杂的业务可能要几十个表甚至上百个表来完成。所以,类似的有先后顺序的多个步骤的流程都需要使用异步流程控制

    工具类:比如爬虫

    爬取一本书的流程

    • 先取列表
    • 再去章节

    技能

    • node-crawler 爬取,发送http请求,是基于request模块的
    • c.queue方法如无callback,走全局的callback,这是获取列表的时候的用法
    • c.queue方法如有callback,走自己的callback,这是获取章节的用法

    我们的做法

    • 最小化问题,先关注爬取一本书的流程
    • 爬取一本书的流程中的列表

    在这个过程中,我们可以很好的学习node-crawler和jquery的dom操作,知识点整体来说比较少,更加容易学习。

    那么,我们想想,如果不是遍历直接函数调用解决,该怎么做呢?

    比如一本书有10章,爬完第一章,才能爬第二章,以此类推