小编Sem*_*jić的帖子

Angular 4 轮询数据而不覆盖正在更新的项目

在传感器组件中,我有以下代码每 5 秒轮询一次数据:

  Observable
    .interval(this.sensorsRefreshRate * 1000)
    .startWith(0)
    .switchMap(() => Observable.fromPromise(this.getSensorsPromise(this.hubId)))
    .subscribe(res => {
      this.sensors = res.data;
    })
Run Code Online (Sandbox Code Playgroud)

在组件的模板中,我为传感器阵列中的每个项目生成一个子 Sensor 组件。

         <app-sensor
            [sensor]="sensor" 
            *ngFor="let sensor of sensors; trackBy: trackByFn">
          </app-sensor>
Run Code Online (Sandbox Code Playgroud)

子传感器组件负责更新传感器。

如果在 API 返回轮询数据之前进行更新,则会出现问题。在这种情况下,看起来更改的数据被旧的未更改数据覆盖。下次轮询数据时,将反映用户所做的更改。

简短说明:

  1. 将传感器状态标志更新为“真”
  2. 同时,API从更新那一刻开始返回数据,此时状态标志为“false”,看起来状态已被覆盖
  3. 再次轮询数据后,原始更改显示为应有的样子,因为 API 有新数据

polling angular

5
推荐指数
0
解决办法
151
查看次数

Angular2 +项目中缺少.vscode文件夹

我有一个Angular2 +项目,我需要在.vscode文件夹中创建应该立即在我的Angular项目文件夹下的launch.json文件.我没有看到.vscode文件夹.

我可以使用命令提示符创建它,但我想知道为什么我的项目中没有一个当我遵循的指示假设它应该在那里?

visual-studio-code angular

4
推荐指数
1
解决办法
1755
查看次数

如何在 Java Spring Boot 应用程序中合并两个对象?

我需要在 Java Spring Boot 应用程序(ProductDTO 和 Product)中合并对象。

ProductDTO 不包含来自 Product 的所有字段,我只想映射两个对象中相同的字段,同时保留目标对象中的其他值。

我来自 C# 世界,所以我不知道在 Java 中实现相同行为的最佳方法是什么。在 C# 中,我会这样做:

    var project = new Project
    {
        Name = "Project 1",
        Description = "Description"
    };

    var projectDto = new ProjectDTO
    {
        Name = "Project 1 (changed)"
    };

    Mapper.Map(projectDto, project);
Run Code Online (Sandbox Code Playgroud)

执行 Map 方法后,项目对象仍包含 Description 字段的原始值。

在 Java Spring 中执行此操作的最佳方法是什么?

java mapping spring

2
推荐指数
1
解决办法
3502
查看次数

标签 统计

angular ×2

java ×1

mapping ×1

polling ×1

spring ×1

visual-studio-code ×1