9

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

活动图

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

编辑 这将是图表的 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');
4

2 回答 2

6

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

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

异步回调活动图

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

于 2012-10-07T13:45:10.707 回答
3

在活动图中显示回调的最佳方式是信号。只需考虑到信号是完全异步的(发送方和接收方之间完全分离),我不确定 javascript 中的情况是否如此。但是它们与您想要的含义更接近。

于 2012-07-11T15:14:37.430 回答