UML活动图中的异步回调

时间:2012-07-11 13:32:07

标签: javascript asynchronous uml activity-diagram

我正在尝试使用UML活动图来建模我的应用程序。我正在使用JavaScript和Node.js以及许多异步回调。以下是我提出的建议:

Activity Diagram

你怎么看?你明白发生了什么事吗?我正在使用“通用连接器”将回调与操作(“运行MyClass.myMethod”)和fork-node相关联以显示“并行”执行。我没有在任何地方找到关于活动图中回调的书面文字网络或我的书。

修改 这将是图表的JavaScript代码:

var MyClass = function () {
    //constructor
};
MyClass.prototype = {
    myMethod : function(cb) {
        //this is an async method
        var result = 5 + 5;
        setTimeout(function () {
            cb(null, result);
        },100); //execute Callback after 100ms
    }
};

//instanciate a MyClass Object
var myClassInstance = new MyClass();

//create a callback function that prints the result
var callbackFunction = function (err,result) {
    console.log(result);
};

myClassInstance.myMethod(callbackFunction);
console.log('I am first');

2 个答案:

答案 0 :(得分:6)

显示回调的正确方法如下:⁺

您实例化一个Object,将其传递给目标端口并在其上调用指定的操作(calculateTime)。控制流程立即继续,当异步操作完成时,结果将转移到结果引脚。可以通过向Action添加更多object-(in)put引脚来指定异步调用的参数。

async callback Activity Diagram

⁺(参见UML规范11-08-06 11.3.10 CallOperationAction / 11.3.8 CallAction)

答案 1 :(得分:3)

在活动图中显示回调的最佳方式是信号。只要考虑到信号是完全异步的(发送者和接收者之间的完全脱离),我不确定这是javascript中的情况。但是他们对你想要的东西有更接近的意义。