2012-07-11 17 views
9

Uygulamamı UML Aktivite Diyagramları ile modellemeye çalışıyorum. JavaScript ve Node.js ve pek çok zaman uyumsuz geri arama kullanıyorum.UML Aktivite Diyagramlarında Asenkron Geri Çağırmalar

Activity Diagram

Ne düşünüyorsunuz: İşte geldi nedir? Neler olduğunu anlıyor musun? Geri arama ("MyClass.myMethod çalıştırın) ve" paralel "yürütme göstermek için bir çatal-düğüm ile geri arama ilişkilendirmek için bir" genel bağlayıcı "kullanıyorum.Yerhangi bir yerde Faaliyet Diyagramları geri arama hakkında yazılı bir kelime bulamadım . web veya kitaplarım

DÜZENLEME Bu diyagram için JavaScript kodu olacaktır:. sinyaller olacağını etkinlik diyagramlarında geri aramalar göstermek için

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

olası yinelenen http://stackoverflow.com/questions/415974/how- göstergeler-asenkronize-operasyonlar-on-uml-aktivite-diyagramı – Rayfleck

cevap

6

geri aramalar göstermek için bir doğru yolu şudur: ⁺

Bir Nesne instanciate, hedef-portuna geçmek ve üzerinde belirtilen işlemi (calculateTime) diyoruz. Kontrol akışı hemen devam eder ve asenkron çalışma bittiğinde sonuç sonuç pimine aktarılır. Eşzamanlama çağrısı için argümanlar, eyleme daha fazla nesne- (in) yerleştirme pimi eklenerek belirlenebilir.

async callback Activity Diagram

⁺ (UML özelliklerine bakınız. 11-08-06 11.3.10 CallOperationAction/11.3.8 CallAction) ait

3

iyi yolu Sadece bu sinyalleri dikkate almak Tamamen eşzamansız (gönderici ve alıcı arasındaki tam ayrıştırma) ve javascript'in durumunun bu olduğundan emin değilim.Ama istediklerinize daha yakın bir anlamı var.

+0

Sinyaller iyi bir fikir, ama göndericiden alıcıya argümanlar geçemiyorum !? – Chris

+2

Elbette yapabilirsin. – vainolo