0.0.8 • Published 4 years ago

js-workflow-promise v0.0.8

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

js-workflow-promise

GitHub license NPM Version NODE Version CircleCI

用类似promise链式调用的方式来做js工作流管理,有利于梳理和简化复杂的业务流程。

中文版文档

Installation

npm install js-workflow-promise -g

Examples

import { workflow } from '../src/index'

workflow
  .init({
    name: 'workflow-demo',
    context: null
  })
  .add({
    name: 'task1',
    target(curTask) {
      console.log(`Workflow-excuting: ${curTask.name}-excuted`)
    }
  })
  .run()

这个例子新建了一个名为workflow-demo的工作流,并往这个工作流中添加了一个任务task1,然后启动工作流。需要注意的是,工作流的返回值都会是一个promise

API Reference

Init

传入自定义配置来初始化一个工作流,配置可选

属性含义
name工作流名称
context作为贯穿工作流的上下文
debug是否开启调试模式

Add

往工作流中添加一个任务task或者一个任务组taskGroup,要注意必须先进行初始化init。 每个工作流都是由无数的合流,分流任务组成的,每个task需要满足以下特征

属性类型含义
namestring任务名称
target(task:Task,workflowInst:Workflow)=>any任务目标函数
scopeany任务函数执行作用域,不传则作用域默认为当前工作流。
descriptionstring任务描述
filter(task:Task)=>boolean是否应该执行该次任务

Run

执行工作流中的任务,最终返回一个promise。 要注意的是,只要工作流中的一个任务中断(出错或者显性地调用this.cancel()),则会抛出异常,且不会执行后续任务。

Cancel

中断工作流,中断正在执行的任务,且不会执行后续任务。

Property Reference

Name

工作流的名称

Context

贯穿工作流的上下文,可以类似使用koa.ctx的思想和习惯来使用该属性。

Debug

开启调试模式。开启后会将task运行的细节记录起来,可以通过record获取到每个task运行的结果,错误信息,耗时信息

TODO LIST

  • 收集workflow运行结果并可视化展示

Licence

MIT

0.0.8

4 years ago

0.0.5

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.1

5 years ago