Javascript 异步流程图。如何直观地表示异步逻辑
是的,这有点矛盾 是否有表示异步逻辑的可视化语言?像流程图这样简单的东西 我想对UI“屏幕”及其背后的逻辑进行建模 谢谢 如果您希望“为(异步)逻辑建模”,以便从中得出语义上合理的结论,那么您需要。来自维基百科: Petri网是一种描述分布式系统的建模语言 系统,带有过渡和位置图。Javascript 异步流程图。如何直观地表示异步逻辑,javascript,node.js,angularjs,promise,Javascript,Node.js,Angularjs,Promise,是的,这有点矛盾 是否有表示异步逻辑的可视化语言?像流程图这样简单的东西 我想对UI“屏幕”及其背后的逻辑进行建模 谢谢 如果您希望“为(异步)逻辑建模”,以便从中得出语义上合理的结论,那么您需要。来自维基百科: Petri网是一种描述分布式系统的建模语言 系统,带有过渡和位置图。 与UML活动图、BPMN和EPCs等行业标准一样, Petri网为逐步过程提供了一种图形表示法 包括选择、迭代和并发执行。不像这些 根据标准,Petri网对其定义有精确的数学定义 执行语义学,具有完善的数学理论 过程
与UML活动图、BPMN和EPCs等行业标准一样, Petri网为逐步过程提供了一种图形表示法 包括选择、迭代和并发执行。不像这些 根据标准,Petri网对其定义有精确的数学定义 执行语义学,具有完善的数学理论 过程分析 承诺在petri网中应易于表示为3个位置,每个位置表示一个承诺 如果您只是在寻找系统的一个简单的视觉表示,那么您可能正在寻找一个。或者您只需使用并发原语(如“生成异步进程”和“等待结果”)扩展流程图。如果您正在寻找一种适当指定的“可视化语言”,请查看OMG的工具,例如。有一种表示异步逻辑的“可视化语言”:Petri网 [Petri]网理论 Petri网是用网络元素来描述一个系统。网络元素有四种类型:位置、转换、输入和输出。输入将一个位置连接到过渡。输出将过渡连接到某个位置。每个网络元素可以有零个或多个注释。每个注释也可能有零个或多个注释 类型注释 网络元素有一种类型:p(位置)、T(转换)、I(输入)、O(输出) 图标注释 位置元素可以用圆形直观地表示。过渡元素可以用正方形表示。输入元素可以用从圆到正方形的箭头表示。输出元素可以用从正方形到圆形的箭头表示 标签注释 每个圆或正方形都可能带有标签标识符,即用于唯一标识形状的文本。正方形的标签以正方形为中心。圆的标签位于圆的外部 模式和类别 可以方便地从现有的一组注释模式开始,例如用于位置/转换网(一类Petri网)的注释类型
我将此库用于一个项目,以可视化数据库对象的状态:
虽然它并没有真正涵盖异步内容,但它确实有助于非技术人员对applicationlogic进行推理。它只是一个具有并发性的流程图,即多个活动流-比较NFA和DFA。还要看一看petri网,它被显式地用于建模并发逻辑,但它们可能有点过于复杂(取决于您的用例)。我不知道这一点,但
ajax
回调(或setTimeout
,或任何其他“异步逻辑”)的实际情况是,当它触发时,它被添加到事件队列中,然后在事件循环到达该点时执行。因此,与其通过控制流直观地表示它,不如画一个事件队列的表示,并让事物为其提供信息。请注意,这与并发略有不同,与并行线程也有很大不同。使用图表技术时,您面临的最大决策是如何使用它们。有两个基本的思想流派—(1)让您开始,一旦初始代码被剪切,就忘记它们,或者(2)在软件的生命周期中,将图表作为配置控制项进行维护(例如,作为一套设计文档的一部分),并且仅根据图表中的更改对代码进行更改(等等)。对于没有为大型公共/企业客户(特别是军队客户)工作过的人来说,第二种机制可能并不熟悉。@Roamer-1888:还有第三种机制:从图表中自动生成代码。我