问题标签 [angular2-observables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5536 浏览

angular - 创建自定义 Observable

有可能(并且正确)创建一个自定义的 observable 吗?例如,如果我的缓存中有数据,我想在发出 http 请求之前创建自定义 observable:

我的请求:

谢谢

0 投票
1 回答
1398 浏览

angular - Angular 2 - 导航到用户详细信息页面不显示选定的用户详细信息

我正在尝试创建一个用户详细信息页面,您可以在其中获取有关所选用户的更多信息。当您单击列表中的用户名时,它会成功导航到用户详细信息页面,但会引发此错误:

Unhandled Promise rejection: Error in src/person-details.component.html:3:25 caused by: Cannot read property 'id' of undefined

这是一个小插曲:http: //embed.plnkr.co/cUEIag77etv95ZFJY3iN/

这是代码:

人员列表.component.ts

人列表.component.html

人员详细信息.component.ts

人员详细信息.component.html

应用服务.ts

0 投票
0 回答
337 浏览

angular - Angular2 - 在 Observable ForkJoin 中获取错误 URL

我有一个可以包含多个 HTTP 请求的 Angular2 ForkJoin。当 ForkJoin 出错时,我希望能够确定导致错误的 ForkJoin 中请求的 URL 的子域/域。如果错误是 401 Unauthorized,那么我需要尝试重新建立新连接。我需要失败请求的子域/域,以便我可以查找凭据以重新建立令牌,然后再次尝试 ForkJoin 请求。我的 ForkJoin 可能会向不同的域发出多个请求。

发生错误时,是否可以在 ForkJoin 中的批量 URL 中确定 URL 的子域/域?

0 投票
3 回答
80275 浏览

angular - 使用服务中的 observables 测试错误案例

假设我有一个订阅服务功能的组件:

subscribe 调用将两个匿名函数作为参数,我设法为 data 函数设置了一个工作单元测试,但 Karma 不会接受错误的覆盖。

在此处输入图像描述

我试过监视 console.error 函数,抛出一个错误,然后期望间谍被调用,但这并没有完全做到。

我的单元测试:

测试此类匿名函数的最佳实践是什么?确保测试覆盖率的最低要求是什么?

0 投票
2 回答
1578 浏览

angular - 将多个具有不同动作/操作的 Observable 组合起来

我正在构建一个 Angular2 应用程序,所以我已经习惯了 Observables 和 Reactive Extensions 作为一个整体。我正在使用 TypeScript 和 rxjs。

现在我有一个可观察的,或者如果你愿意的话,我有一个流,它包含一些对象的数组。比方说人对象。现在我有另外两个 Person-objects 流,并且想将它们组合起来,所以我得到一个始终是最新的流:

如果 people-stream 发出一个数组,比方说 5 个人,然后 personAdded-stream 发出一个人,allPeople-stream 将发出一个 6 数组。如果 personRemoved-stream 发出一个人,allPeople-流应该发出一个 Person-objects 数组,而不是刚刚由 personRemoved-stream 发出的那个。

rxjs 中是否有内置方法来获得这种行为?

0 投票
2 回答
102 浏览

angular - ionic2/angualr2 取消主页选项卡上的 observables

我正在尝试取消 ionic2 上的主页选项卡上的一个 observable,这可能是那里的一个错误,因为现在 6 小时后没有任何效果。

我正在使用的可观察示例来自此站点 https://coryrylan.com/blog/intro-to-rxjs-observables-and-angular-2

我试过 ngZone,你不能从 ngZone 清除间隔,

我试过了

没有任何效果..这是代码...此代码在主页选项卡上

0 投票
1 回答
780 浏览

angular - 可观察到的更改后Angular 2父视图未更新

我有一个 Observable 服务,我用它来协调组件之间的数据。在这种情况下,我试图用它来控制哪些组件/ html 一次应该是可见的。

当我将父组件订阅的行为主体的值设置为true时,它会成功显示子组件(transform-addedit)。但是,当我从子组件更新控制此(mapAddingTransformSubj)的服务成员时,即使我在父组件中订阅,视图也不会切换回来。我确实确认父母正在正确接收可观察的价值。

如果有人可以提出更好的方法来做到这一点,我将不胜感激!

父组件html:

父组件.ts:

子组件 .ts:

我的部分服务:

0 投票
1 回答
896 浏览

angular - Angular 2 中的可观察链

我是 Angular2 的新手,需要 Observables 方面的帮助。

我有网络应用程序,它从远程资源中获取一些数据并将其显示给用户。

问题是我应该使用 http 获取数据,将其存储在本地,然后由其他组件使用。

我尝试了下一个方案:

数据.ts

控制器.ts

view.cityselector.html

但是,使用这个方案,我调用 http 3 次(而不是 1 次),并且这个值{{ cities }}是未定义的

那么,我如何从 http 获取数据,将其传输到某个局部变量,然后使用本地数据,而不是始终调用新的 http

0 投票
1 回答
1041 浏览

angular - Angular2路由解析多个动作

嘿,

我有一个应用程序,我们有多个用户,我想查看用户详细信息,所以我需要在输入路线之前通过 id 解析该用户。如果我首先将自己登陆到获取所有用户的用户组件,那么当我这样做时一切都好。但是在重新加载的情况下,路由尝试通过 id 解析用户并失败,因为已经没有用户(他们还没有被获取)。我想检查用户是否存在,获取它们,然后用用户解析路由。这是代码:

然后在组件中

当我收听路由数据时,我得到的只是用户对象:订阅者。当我只返回 this.usersService.getUserById 函数时,用户对象正常出现。

0 投票
1 回答
455 浏览

angular - Angular2 - 重复调用服务

我有一个从服务器检索数据的服务。此数据用于填充页面。我想每 5 秒刷新一次页面。我尝试了一个非常简单setInterval() 的方法,但是所有对服务器的调用都是一个接一个,而无需等待前一个调用完成。例如,当服务器出现故障时,这是一个问题。我现在不知道哪一个是最好的解决方案,也许是 rxjs 和 observables。