美文网首页
ControlFlow(2)--auto

ControlFlow(2)--auto

作者: LuciferTM | 来源:发表于2016-07-25 21:53 被阅读2次

auto用来处理有依赖关系的多个任务的执行。比如某些任务之间彼此独立,可以并行执行;但某些任务依赖于其它某些任务,只能等那些任务完成后才能执行 。虽然我们可以使用parallel和series结合起来实现该功能,但如果任务之间关系复杂,则代码会相当复杂,以后如果想添加一个新任务,也会很麻烦。 这时使用auto,则会事半功倍。

如果有任务中途出错,则会把该错误传给最终callback,所有任务(包括已经执行完的)产生的数据将被忽略。
如果不关心错误和最终数据,可以不用写最后那个callback。

 async.auto(tasks, [callback])

我要写一个程序,它要完成以下几件事:

  1. 从某处取得数据
  2. 在硬盘上建立一个新的目录
  3. 将数据写入到目录下某文件
  4. 发送邮件,将文件以附件形式发送给其它人。

分析该任务,可以知道1与2可以并行执行,3需要等1和2完成,4要等3完成。
可以按以下方式来使用auto函数。

代码:

结果:

如果出错:
代码:

结果:

相关文章

  • ControlFlow(2)--auto

    auto用来处理有依赖关系的多个任务的执行。比如某些任务之间彼此独立,可以并行执行;但某些任务依赖于其它某些任务,...

  • [译]利用Protractor的控制流做异步测试

    原文地址:Asynchronous Testing with Protractor’s ControlFlow 首...

  • ControlFlow

    基本控制 自定义约等

  • Project6:Auto Layout

    概述 摘要:熟悉Auto Layout 概念:Auto Layout 1. 设置 2.进阶Auto Layout ...

  • Sass列表函数-join()

    join($list1, $list2, $separator: auto, $bracketed: auto) ...

  • Python--控制流

    controlFlow if,elif,else for用于对集合(列表或者元组)或者迭代器进行迭代 x = 25...

  • sequelize-auto

    1、npm install -g sequelize-auto 2、sequelize-auto -h local...

  • ControlFlow(4)--compose

    创建一个包括一组异步函数的函数集合,每个函数会消费上一次函数的返回值。把f(),g(),h()异步函数,组合成f(...

  • ControlFlow(1)--applyEach

    applyEach,可以实现给一数组中每个函数传相同参数,通过callback返回。 如果只传第一个参数,将返回一...

  • ControlFlow(3)--cargo

    cargo也是一个串行的消息队列,类似于queue,通过限制了worker数量,不再一次性全部执行。当worker...

网友评论

      本文标题:ControlFlow(2)--auto

      本文链接:https://www.haomeiwen.com/subject/bpqnjttx.html