快速提问 - 如何在Prism事件聚合器订阅者操作中调用异步方法? E.g。
_eventAggregator.GetEvent<PubSubEvent<SomeMessage>>()
.Subscribe((msg) => {
DoSomething();
await DoSomethingAsync();
DoSomethingElse();
});
答案 0 :(得分:1)
使用当前的Prism实现,不可能see here。
但是我发现了Prism EventAggregator的替代实现,该实现允许2.3.3 :001 > my_obj = { "name" => "name", "surname" => "surname" }
2.3.3 :002 > my_obj.delete("surname")
2.3.3 :003 > my_obj
=> {"name"=>"name"}
订阅。参见here。
此新事件异步聚合器重载可以与原始事件重载相同的方式使用:
事件订阅与另一个过载完全相同:
function getRiskRate(z){
var z=document.getElementById("Risk_rating").value;
return(z);
}
getRiskRate();
function Rate(z){
var z=document.getElementById("Risk_rating").value;
getRiskRate();
if(z>1 || z<=2){
document.getElementById('mySeverity').value='Low';
} else if(z>2 || z<=6){
document.getElementById('mySeverity').value='Medium';
} else if (z>6 || z<=9){
document.getElementById('mySeverity').value='High';
}else{
document.getElementById('mySeverity').value='value not defined';
}
}
Rate();
事件处理程序:
async
答案 1 :(得分:0)
让@Charles Mager回答
_eventAggregator.GetEvent<PubSubEvent<SomeMessage>>()
.Subscribe(async(msg) => {
DoSomething();
await DoSomethingAsync();
DoSomethingElse();
});