问题标签 [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 投票
1 回答
2313 浏览

angularjs - angular 2 observable.subscribe 直到被第二次调用才被执行

我试图让这个组件从返回可观察的服务中获取字符串数据

这是一个简单的服务:

我将服务列为@NgModule() 中的提供者,以便它可以被所有组件实例共享。TabFourComponent 还有一个路由器,所以每次我导航到它时,我都应该在控制台中看到“testing observable”。但是直到我两次调用 getItems() 才显示出来。我想知道为什么它没有在第一次触发。

编辑:

而在另一种情况下,服务提供来自 http.get 的数据

组件订阅后无需再次调用服务的方法。

0 投票
1 回答
899 浏览

angular - Angular2在queryList中的多个项目上注册可观察事件处理程序

我有一组元素,我想在其中注册一个事件处理程序。我尝试在如下模板中的每个元素上注册事件处理程序,尽管性能不够,并且当长度myLabels很大(> 1000)时我会错过一些这些事件

在里面.html

在里面.component.ts

相反,我想将这些事件注册为Observable流。

在我的.component.ts;

虽然这不起作用,因为this.cells它是一个QueryList. 使用QueryList.toArray(),我得到一个数组,我可以在其中访问每个nativeElement喜欢QueryList.toArray()[n].nativeElement

我将如何为中的每个元素设置一个事件的 Observable cells

0 投票
2 回答
2210 浏览

angular - angular2 / RxJS - 如何从 subscribe() 内部重试

这是我的代码:

如果发生异常,它将被发送到 API 中的一个函数,然后true如果问题得到修复(例如令牌刷新)则返回,并且它只需要在修复后再次重试

我不知道如何让它重试。

0 投票
2 回答
6583 浏览

angular - timer.unsubscribe 不是 Angular2 的函数

试图制作一个简单的计时器,并且需要在某些if情况下打破它。但总是报错EXCEPTION: timer.unsubscribe is not a function

我究竟做错了什么?

0 投票
2 回答
7369 浏览

angular - 如何将 retryWhen 与返回布尔值的函数一起使用?

这是我的代码:

现在我需要捕获异常并将它们传递给我responseErrorProcess()的返回true,如果它需要重试

我不知道如何从中检索异常errors,这就是它的外观:

它似乎不包含有关发生的异常的错误,而且我不知道应该返回什么才能实际重试。

0 投票
0 回答
111 浏览

angular - Angular 2 Observable JWT Header 问题

我有一个奇怪的问题。我需要成功登录然后保存 JWT,然后我需要使用新的 Header 发出另一个 HTTP 请求,其中包括作为授权的 JWT 以获取用户详细信息。不幸的是,在我的第二个 HTTP 请求中,我错过了 JWT。任何帮助,将不胜感激。

以下是我的代码

API服务

登录组件

登录服务

用户服务

国家服务

JWT 没有在我的第二个请求的标头中添加。

0 投票
1 回答
24151 浏览

angular - 如何在测试 angular2 组件时模拟可观察流?

我正在为 angular2 组件编写测试用例。

我创建了一个使用可观察流的服务,如下所示:

现在在我的组件中,我订阅了这个流:

现在在我的 spec.ts 文件中,我想将此流模拟为:

但它一直给我以下错误:

错误:spyOn 无法为 selectColumn$() 找到要监视的对象

有什么办法吗?

我在这个问题上停留了很长时间。

任何输入?

谢谢

0 投票
2 回答
11381 浏览

angular - Angular 2 - 测试路由参数的变化

我有一个 angular 2 中的组件,它响应路由参数的变化(该组件不会从头开始重新加载,因为我们没有移出主路由。这是组件代码:

这是一种享受,并且_pageToShow在导航上设置适当。

我正在尝试测试更改路线的行为(因此第二次触发可观察但它拒绝为我工作。)这是我的尝试:

TypeError: Cannot read property 'subscribe' of undefined但是当我运行它时会引发异常。如果我在没有这fixture.detectChanges();条线的情况下运行它,它会因为第二个期望失败而失败。

0 投票
2 回答
341 浏览

http - Angular 2如何制作嵌套的observable

我正在尝试编写我们的 httpService,它应该有一个 post 方法来检查是否存在带有 auth 令牌的 cookie,如果存在,那么它应该附加 auth 标头并发出 post 请求。

但是,如果 cookie 不存在,我需要加载一个包含令牌的本地 json 文件并使用它来创建 cookie,然后附加 auth 标头并发出 post 请求。

我遇到的问题是,如果 cookie 不存在,我需要让 observable 等待另一个 observable。我曾认为解决方案是使用 switchMap,但这与 .subscribe 并不能很好地配合使用,而 .subscribe 是 http.post 请求初始化所必需的。

更新:这变得奇怪的是,或多或少确切的游戏代码可以在获取请求中正常工作。

解决方案:我没有订阅 httpService.post 可观察对象,因此它从未被初始化。

0 投票
2 回答
132 浏览

angular - Angular 2 Observables 和 Http 中的“未定义”

我发现在 Angular 2 中使用带有 http 的 observables 真的很困难。在下面的代码中,我in method:成功地在控制台中打印了值。但是Main:undefined我尝试打印时。

我怎样才能从中获得价值Main

模板代码:

组件代码: