Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 级联信号机数据访问的“最佳实践”_C#_Javascript_Jquery_Signalr.client - Fatal编程技术网

C# 级联信号机数据访问的“最佳实践”

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.

我的客户端信号器JavaScript文件中有以下代码:

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库版本

我刚才试图避免引入许多其他扩展,但我会看看如何使用原始事件。你知道一个好的在线参考吗?