Angular:同一服务的多个实例

乔治亚

问题

为我的 Angular 应用程序使用了第三方模块服务该服务包括一个处理对后端的 REST 调用方法

该服务用于我的 Angular 应用程序的两个不同组件。但是,可能会发生两个组件几乎同时发送请求,并且 - 由于 REST 调用是异步的 - 结果会混淆。

为了更清楚,这里是第三方服务的简化版本:

@Injectable({
    providedIn: 'root'
})
export class ThirdPartyService {

  dataLoaded: Subject<Result> = new Subject();

  callBackend(request: RequestBody): Observable<Result> {
    const promise = this.someJSLibrary.call(request);

    promise.then((result: Result) => {
      this.dataLoaded.next(result);
    });

    return from(promise);
  }
}

当我的两个组件callBackend()几乎同时调用时,它们的结果似乎会相互覆盖 field dataLoaded

问题

我怎样才能防止这种行为?是否有一种直接的方法来创建同一服务的多个实例并将其范围限制在一个组件上?

在 StackOverflow 上找到了一些建议使用自定义工厂函数的答案这真的是解决这种常见问题的推荐方法吗?

乔治亚

我在Angular 文档中找到了答案我会把它贴在这里。愿它有一天能帮助某人。

简单的答案是,您必须通过将组件包含在装饰器provider数组中来限制服务的范围@Component

@Component({
  selector: 'app-my-component',
  templateUrl: './my-component.component.html',
  styleUrls: ['./my-component.component.scss'],
  providers: [ ThirdPartyService ]  // <--- this is the solution
})
export class MyComponent {
  // ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular 8:使用同一服务的多个实例

来自分类Dev

使用同一服务的多个实例

来自分类Dev

Delphi中同一服务的多个实例

来自分类Dev

Angularjs和Jasmine:使用同一服务的多个实例进行测试

来自分类Dev

Angularjs和Jasmine:使用同一服务的多个实例进行测试

来自分类Dev

如何在多个irssi实例中连接到同一服务器?

来自分类Dev

同一服务器实例上多个静态站点的 Nginx 配置

来自分类Dev

Rx Android并行组合了对同一服务的多个调用

来自分类Dev

服务定位器模式-如何处理同一服务接口的多个实现

来自分类Dev

在同一服务器上部署的多个Ear之间提供“服务”

来自分类Dev

服务定位器模式-如何处理同一服务接口的多个实现

来自分类Dev

Plone 4.2:如何在同一服务器上启动新安装的实例?

来自分类Dev

Websphere 7-如何知道部署在同一服务器实例中的EARs端口

来自分类Dev

angular6 - 在同一服务的响应回调中调用服务

来自分类Dev

所有页面标头中的可疑javascript(同一服务器上的多个网站)

来自分类Dev

SOAP WS-用于同一服务的多个不同安装的单个客户端

来自分类Dev

在Dart中向同一服务器发出多个请求的最佳方法是什么?

来自分类Dev

在同一服务器上的多个数据库中查询

来自分类Dev

将Redis用作同一服务器上多个应用程序的缓存存储

来自分类Dev

如何使用hapi.js在同一服务器上支持多个网站?

来自分类Dev

使用PHP在同一服务器上的多个域之间共享会话

来自分类Dev

如何在同一服务器上运行多个StrongLoop LoopBack应用程序?

来自分类Dev

如何防止同一服务人员在多个页面上注册?

来自分类Dev

Java套接字将多个对象发送到同一服务器

来自分类Dev

同一服务器上多个站点的nginx配置

来自分类Dev

多个hangfire仪表板并同时在同一服务器上进行处理

来自分类Dev

使用IP地址访问同一服务器上具有多个域的网站

来自分类Dev

davfs2:使用不同的凭据从同一服务器安装多个webDAV

来自分类Dev

适用于同一服务器上的多个域的良好实践

Related 相关文章

  1. 1

    Angular 8:使用同一服务的多个实例

  2. 2

    使用同一服务的多个实例

  3. 3

    Delphi中同一服务的多个实例

  4. 4

    Angularjs和Jasmine:使用同一服务的多个实例进行测试

  5. 5

    Angularjs和Jasmine:使用同一服务的多个实例进行测试

  6. 6

    如何在多个irssi实例中连接到同一服务器?

  7. 7

    同一服务器实例上多个静态站点的 Nginx 配置

  8. 8

    Rx Android并行组合了对同一服务的多个调用

  9. 9

    服务定位器模式-如何处理同一服务接口的多个实现

  10. 10

    在同一服务器上部署的多个Ear之间提供“服务”

  11. 11

    服务定位器模式-如何处理同一服务接口的多个实现

  12. 12

    Plone 4.2:如何在同一服务器上启动新安装的实例?

  13. 13

    Websphere 7-如何知道部署在同一服务器实例中的EARs端口

  14. 14

    angular6 - 在同一服务的响应回调中调用服务

  15. 15

    所有页面标头中的可疑javascript(同一服务器上的多个网站)

  16. 16

    SOAP WS-用于同一服务的多个不同安装的单个客户端

  17. 17

    在Dart中向同一服务器发出多个请求的最佳方法是什么?

  18. 18

    在同一服务器上的多个数据库中查询

  19. 19

    将Redis用作同一服务器上多个应用程序的缓存存储

  20. 20

    如何使用hapi.js在同一服务器上支持多个网站?

  21. 21

    使用PHP在同一服务器上的多个域之间共享会话

  22. 22

    如何在同一服务器上运行多个StrongLoop LoopBack应用程序?

  23. 23

    如何防止同一服务人员在多个页面上注册?

  24. 24

    Java套接字将多个对象发送到同一服务器

  25. 25

    同一服务器上多个站点的nginx配置

  26. 26

    多个hangfire仪表板并同时在同一服务器上进行处理

  27. 27

    使用IP地址访问同一服务器上具有多个域的网站

  28. 28

    davfs2:使用不同的凭据从同一服务器安装多个webDAV

  29. 29

    适用于同一服务器上的多个域的良好实践

热门标签

归档