问题标签 [angular-observable]

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 回答
1287 浏览

angular - Angular 4 中 DELETE 方法的 net::ERR_EMPTY_RESPONSE 错误?

我正在使用以下方法删除数据

但是net:: ERR_EMPTY_RESPONSE当我在 POSTMAN 中运行它时,它也被成功删除。

请指导

0 投票
31 回答
677939 浏览

angular - Promises 和 Observables 有什么区别?

PromiseAngular和Angular有什么区别Observable

每个例子都有助于理解这两种情况。我们可以在什么情况下使用每种情况?

0 投票
5 回答
91691 浏览

angular - 为什么我们应该在 Angular 中使用 subscribe() 而不是 map()?

我试图利用 angular2 中的 observables 并且对我为什么应该使用map()over感到困惑subscribe()。假设我从 webApi 获取值,像这样

现在使用subscribe(success, error, complete)我可以获取成功回调的所有值,并且可以返回完整回调的值。如果我可以完成所有这些功能,那么需要map()什么?它有什么好处吗?

简而言之,为什么要这样写

当他们可以在没有 map 函数的情况下简单地编写它时:

0 投票
2 回答
67218 浏览

angular - HTTP 错误处理如何与 observable 一起工作?

我看到很多教程都在做这样的事情:

我不知道这是如何工作的,因为没有任何类型或任何东西,但是我自己尝试这样做,结果即使我有错误,请求也总是成功。问题是什么?

麻烦制造者:

memberService 中的 Create-Method:

我什至发现了错误,但这subscribe部分似乎并不在意。它在 处失败success.json(),因为如果有错误,则没有json。但是如果有错误,我希望它调用error =>...而不是success. 任何建议都将受到高度赞赏。

0 投票
1 回答
85 浏览

angular - 如何更新我的订阅数据?

我有一项服务可以对休息 api 进行一些 http 调用。在我的组件上,我订阅了它。如何在不重新调用服务的情况下更新订阅中的数据?

0 投票
1 回答
2904 浏览

angular - 订阅后 SwitchMap 上的 Forkjoin 未返回

我正在编写一个 Observable,它将从服务器获取用户,并试图通过仅获取唯一用户然后缓存它们来提高性能。在返回所有用户后,我还使用 forkjoin 更新用户数组。

首先,我使用服务调用从服务器获取用户:

这使用以下函数返回对象的可观察对象,具体取决于对象是否存在于缓存中或是否需要从服务器中检索。

调用该服务的组件上的代码如下:

我遇到的问题是 ForkJoin 永远不会返回,即使我可以验证 getUserById 调用正在运行完成并返回一个值。我很困惑,尽管我不完全确定它们的区别,但我已经尝试了 switchmap 和 flatmap。

** 编辑 **

getIdToken 的代码如下

我已经确认该程序确实上线了:

观察者.next(session.getIdToken().getJwtToken());

因此,观察者未完成似乎不是问题

0 投票
1 回答
79 浏览

angular - Angular 2:如何创建删除服务,但只是将状态更新为非活动状态

顺便说一句,我是 Angular 的新手。

我有一个删除按钮,它向用户显示一个关于是否真正删除员工的确认对话框。当用户选择 YES 时,前端会将员工 ID 传递给后端,服务应该只更新员工并向前端返回 FALSE 或 TRUE。

deleteEmployee()问:我的 in service (Observable) 中正确的内容应该是什么?

我的服务文件中有这些代码

和这个:

0 投票
3 回答
6727 浏览

angular - 按顺序执行多个异步路由守卫

我知道当 canActivate 函数返回一个简单的时,角度路由守卫按指定的顺序执行boolean,但是,如果守卫返回类型Observable<boolean>Promise<boolean>

路线示例:

SessionExpiredAuthGuard 和 CheckoutAuthGuard 都返回 type Observable<boolean>。我不希望在 SessionExpiredAuthGuard 完成从异步 http 请求中检索其数据之前执行 CheckoutAuthGuard。

有没有办法强制这些异步守卫按顺序执行?

0 投票
0 回答
386 浏览

angular - 创建为所有组件提供单例服务的子模块

我正在尝试使用共享服务的组件制作一个模块。一个组件(graphview)订阅了一个 BehaviorSubject 的 observable。另一个组件 ( chart-type ) 稍后通过调用服务 ( chart-config ) 中的函数来更新 BehaviorSubject。问题是服务调用何时不ChartTypeComponent更新。我假设正在使用该服务的多个实例,但我不确定如何修复它。.next(data)GraphviewComponent

GraphModule(它们的父模块)在声明中具有ChartTypeComponent和在提供者中。GraphviewComponentChartConfigService

chart-config.service.ts看起来像:

graphview.component.ts导入服务和订阅。它不提供服务。

chart-type.component.ts仅导入服务,并调用 chartconfigService.updateChartConfig :

我找到了相关的问题和答案:

委托:Angular2 中的 EventEmitter 或 Observable

Angular2 Observable BehaviorSubject 服务不工作

但我无法弄清楚我做错了什么。如何在调用 updateChartConfig 时让graphview.component.ts更新?

注意:所有调用/方法/等都有效,并且在调用 updateChartConfig() 后this._chartconfig.next(data).getValue()显示 BehaviorSubject 正在服务中正确更新。graphview.component.ts 根本没有接收到新数据。

更新:

GraphviewComponent将s ngOnInit()更改为的结果

在控制台中生成:

但是在 OnInit 之后永远不会触发(当ChartTypeComponent调用 updateChartConfig() 时)。

更新 2: 很明显根是在注入服务,而不是 GraphModule: 服务树

服务树 2

我仍然希望子模块提供服务,以便它包含在子模块中。

0 投票
1 回答
389 浏览

angular - angular2 中 api 请求的 observables

嗨,我正在实施一个 observable 来获取我的技能 api,但我目前在映射请求的数据时遇到了问题。我的数组在请求结束时保持为空,我认为我的问题出在 extractData() 中。

这是我的服务:

这是我的 .ts 我调用我的服务

这是我的 api 技能返回的结果:

我很感激帮助解决这个问题。