C# 级联信号机数据访问的“最佳实践”
我的客户端信号器JavaScript文件中有以下代码:C# 级联信号机数据访问的“最佳实践”,c#,javascript,jquery,signalr.client,C#,Javascript,Jquery,Signalr.client,我的客户端信号器JavaScript文件中有以下代码: ticker.client.observationArrived = function (eventData) { console.log("Enter observationArrived with %o", eventData.time); var observationId = eventData.observationId; // Use cascading jquery "done" functions.
ticker.client.observationArrived = function (eventData) {
console.log("Enter observationArrived with %o", eventData.time);
var observationId = eventData.observationId;
// Use cascading jquery "done" functions.
// First get observation
ticker.server.getObservation(observationId).done(function (observation) {
console.log("Cascaded from getObservation with %o and %o", eventData.time, observation.ObservationGroupId);
var observationGroupId = observation.ObservationGroupId;
// Next get observation group
ticker.server.getObservationGroup(observationGroupId).done(function(observationGroup) {
console.log("Cascaded from getObservationGroup");
// Add data to HTML table
var newData = {
time: eventData.time,
observationId: eventData.observationId,
observationGroupName: observationGroup.Name
}
$observationTableBody.append(rowTemplate.supplant(newData));
});
});
}
现在我想更进一步,从observationGroup获取ProductId并调用getProduct以获取产品信息,从而将其中的一些信息添加到我的HTML表中。但是每一级的访问嵌套越来越深,如果没有函数嵌套,我看不到任何方法可以将eventData.observationId传递给通过done调用的函数。它不会给人温暖的模糊感
有没有其他方法来处理这个问题,比如说,使用某种全局但本地的事务数据,让我能够更干净地分解事务,而不会受到无限深嵌套的威胁?我知道我可以将方法声明得出格,但从我所看到的情况来看,它们仍然必须是静态嵌套的
或者是否有一种方法可以在一个已完成的项目上传递多个参数?我已经看到了一些例子,比如entityA,entityB.donefunction函数a,b{…,但是我无法让类似的东西工作,也找不到关于表单的文档
或者是否有其他方法来处理这种一般的级联情况,也许是通过使用事件
意识到这一点,这是一个意见问题。你认为在这里最好的实践是什么? 如果您有多个嵌套事件,并且它们只会变得更深入、更嵌套,那么可以尝试响应式扩展 …是一组库,用于编写异步和基于事件的 使用可观察集合和Arrayextras样式的程序 JavaScript中的合成
github上有一个JavaScript库版本我刚才试图避免引入许多其他扩展,但我会看看如何使用原始事件。你知道一个好的在线参考吗?