我正在尝试使用UML活动图来建模我的应用程序。我正在使用JavaScript和Node.js以及许多异步回调。以下是我提出的建议:
你怎么看?你明白发生了什么事吗?我正在使用“通用连接器”将回调与操作(“运行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');
答案 0 :(得分:6)
显示回调的正确方法如下:⁺
您实例化一个Object,将其传递给目标端口并在其上调用指定的操作(calculateTime
)。控制流程立即继续,当异步操作完成时,结果将转移到结果引脚。可以通过向Action添加更多object-(in)put引脚来指定异步调用的参数。
⁺(参见UML规范11-08-06 11.3.10 CallOperationAction / 11.3.8 CallAction)
答案 1 :(得分:3)
在活动图中显示回调的最佳方式是信号。只要考虑到信号是完全异步的(发送者和接收者之间的完全脱离),我不确定这是javascript中的情况。但是他们对你想要的东西有更接近的意义。