angular - 在 Angular 的一个组件中使用多个共享服务订阅
问题描述
在 Angular 中,我使用多个共享服务将道具传递给某些组件。在我的 ngInit 中,我订阅了这些共享服务中的每一个,并在有值时进行我的 api 调用,但我刚刚意识到,如果两个值发生变化,它会进行两次 API 调用,然后是随机的,稍后加载的信息是一个加载。
this._sharedService.sharedData1.subscribe(value => {
if (value) {
this.data1 = value;
//API call w/ value 1
}
})
this._sharedService.sharedData2.subscribe(value => {
if (value) {
this.data2 = value;
//API call w/ value 1 & value 2
}
})
但是当 sharedData 1 稍后加载时,我的 API 调用仅使用数据 1,而不是使用数据 1 和数据 2。我需要所有共享服务在进行此 API 调用之前注册它们的值。但是如果我在订阅之外进行 API 调用,它不会注册,除非只在 init 上。当我的 sharedService 获得新值时不注册。
请问有什么帮助吗?谢谢!
解决方案
推荐阅读
- perl - 如何避免 Type::Tiny::_build_coercion 中的“深度递归”错误/警告
- python - 操作系统错误:[WinError 126] 匀称
- asp.net - ${mdlc:item=RequestId} 和 ${aspnet-request-posted-body} 不返回数据
- javascript - UnhandledPromiseRejectionWarning: MongoError: E11000 重复键错误集合
- reactjs - 使用 Apache 时 request.headers() 和 request.META 中缺少授权头字段,使用自定义头时浏览器中的 Preflight CORS 错误
- kubernetes - 如何在 https://hub.docker.com/ 中配置 microk8s kubernetes 以使用私有容器?
- java - 为什么我没有在 Java FX 中获得任何规模转换。?
- python - 在 Flask WTForms 中控制 BootStrap 表单的样式
- python - 如何使用python igraph获取节点“有序”列表
- laravel - Laravel Livewire 和 Alpine.js 纠缠变量不同步