我分享了一段代码,演示了我有两种类型的response.如果你看一下下面的代码,你会发现服务结果的response会略有不同.在第一种类型中,您有一个data,但在第二种类型中,这个data本身有另一个data.

{
    "data": {
        "hasError": false,
        "developerMessage": null,
        "totalCount": 43
    },
    "hasError": false,
    "developerMessage": null
}

或:

{
    "data": {
        "hasError": false,
        "developerMessage": null,
        "data": {
            "hasError": false,
            "developerMessage": null,
            "totalCount": 43
        },
        "totalCount": 43
    },
    "hasError": false,
    "developerMessage": null
}

因此,为了解决这个困境,我必须首先判断response的结果,并将其分为两个区块.最大的问题是,由于我无法在这里解释的原因,这个层次 struct 可能会扩展,我有三个数据,但我们可以肯定的是,response中的data总是the deepest.(本例中的third项)

   return this.httpWrapperService.get(url + tableNameWithSlash, {
            params: params, additionalOptions: {spinnerEnabled: false}
          }).then((result: any) => {

            if (result.data.data) {
              // code
              return [...result.data.data];
            } 

            else if (result.data) {
              // code
              return [...result.data];
            }

          });

我想知道是否有更好的解决方案来处理这个动态response.

推荐答案

您可以使用递归生成适用于任何深度的解决方案,例如数据位于第4层

    .then((result: any) => {
        const findData = (response: any) => {
           return response.data ? findData(response.data):response;
        }
         return [...findData(result.data)];

          });

Javascript相关问答推荐

JavaScript寻求、寻求和时间更新事件||Mux

在具有焦点和上下文的d3多线图表中,如何将上下文的刷新限制在特定日期?

React对话框模式在用户单击预期按钮之前出现

根据总价格对航班优惠数组进行排序并检索前五个结果- Angular HTTP请求

如何分配类型脚本中具有不同/额外参数的函数类型

jQuery提交按钮重新加载页面,即使在WordPress中使用preventDefault()

如何从调整大小/zoom 的SVG路径定义新的d属性?""

构造HTML表单以使用表单数据创建对象数组

使用JQuery单击元素从新弹出窗口获取值

如何通过使用vanilla JS限制字体大小增加或减少两次来改变字体大小

在open shadow—root中匹配时,使用jQuery删除一个封闭的div类

如何创建返回不带`new`关键字的实例的类

类构造函数忽略Reaction Native中的可选字段,但在浏览器中按预期工作

TinyMCE 6导致Data:Image对象通过提供的脚本过度上载

使用Document.Evaluate() Select 一个包含撇号的HTML元素

未捕获语法错误:Hello World中的令牌无效或意外

使用RxJS from Event和@ViewChild vs KeyUp事件和RxJS主题更改输入字段值

JavaScript&;Reaction-如何避免在不使用字典/对象的情况下出现地狱?

P5.js中矩形内的圆弧

FindByIdAndUpdate在嵌套对象中创建_id