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

angular - Angular - 订阅 route.queryParams

我的 ngOnInit 中有这个

还有这个删除功能

我在做什么。每次我删除站点时,我都会创建一个随机数来更改路线,以再次进行第一次可观察的运行。你能建议一个更好的方法。这似乎是非常糟糕的做法。

0 投票
1 回答
1093 浏览

angular - 将 Promise 与 HttpInterceptor observables 混合问题?

我正在使用 HttpInterceptor 重新发送带有令牌的请求,以防它们返回 401。这在我刚刚获取缓存的令牌之前效果很好。由于 Firebase 令牌似乎没有自动刷新(尽管使用 forceRefresh),我现在正尝试在拦截器类中实时获取新令牌。问题是现在没有重新发送请求。

这是我的完整拦截器:

如果没有此承诺函数来获取新令牌,则将使用最后一个“next.handle(changedReq);”重新发送请求。我没有发现我在这里做错了什么。这是因为我将 promise 与 observables 混合在一起造成的吗?

0 投票
1 回答
29623 浏览

angular - 使用指令检测角度 4 中的 Click 外部元素

我已经使用自定义指令来检测角度 2 中元素外部的点击,但在角度 4 中则不可能。

[plunkr] https://plnkr.co/edit/aKcZVQ?p=info

当我尝试在 angular-4 中使用相同的代码时,出现以下错误:

如果 Angular 4 中的指令声明有任何变化,请告诉我,官方文档对此事没有帮助。

0 投票
1 回答
181 浏览

javascript - Angular 2 / Angular 4 - 无法读取在 newZoneAwarePromise 中定义的 authService 的属性

我创建了 authService,在其中创建了一个检查电子邮件是否已注册的函数。虽然员工验证我将此函数称为禁止电子邮件,但它给出了一个错误:无法读取在 newZoneAwarePromise 定义的 authService 的属性

这是我的代码:

验证服务代码:

registerEmployee 函数也使用了 authservice,但在我添加此验证之前它运行良好,这意味着禁止电子邮件函数存在一些问题。

我是 Angular js 的新手,无法解决问题。

0 投票
2 回答
819 浏览

angular - Angular 2个连续的http请求

在我的角度数据服务中,我试图发出两个 http 请求,第二个请求取决于第一个请求中的数据。第一个请求工作正常,但由于某种原因,第二个请求永远不会到达我的后端服务器。我希望有人能告诉我我这样做是否正确或告诉我我做错了什么。

编辑:我没有订阅第二个请求。我不知道你必须订阅你提出的每个请求,即使它们在同一个代码块中

0 投票
2 回答
1370 浏览

angular - Angular 4 Observable 服务不适用于 api http get

Angular 4 Observable 服务不适用于 api http get。

返回 observable 的 http 似乎不起作用。

我正在使用新的 HttpClient

这是我得到的错误:

错误:找不到“object”类型的不同支持对象“[object Object]”。NgFor 仅支持绑定到 Iterables,例如 Arrays。

解决方案?

似乎不喜欢 Observable 去 ngFor。也许我需要做一个switchMap?在组件中。

这是我的 http 服务调用:

这是我的html:

这是我的组件:

这是我的模型:

0 投票
2 回答
348 浏览

angular - Angular 2 为什么我的 4 个 api 调用在执行前没有等待上一个调用完成?

我有一个form/component必须执行 4 个单独的 API 调用才能执行“保存”。真的,这些交易中只有一个需要等待其他 3 个,但为了安全起见,我还是想把所有 4 个都链接起来。

这是我的设置方式:

在每个save{number}函数中,我都有日志消息,因此我确切地知道这些函数执行的顺序(以及响应返回)。

当我点击保存时,它 [几乎] 立即重定向到我的确认页面,然后我可以坐在那里在 chrome 开发工具中观看我的控制台窗口,并看到来自 API 调用的响应开始进入。

为什么这个设置不接受这些交易的显式链接?我知道在Angular1 中,用promise, 和做.then(response => {});.

我能想到的唯一不同的是,对于每个 API 调用,无论是get/ post/ put/ delete,它总是在 chrome 开发工具的网络面板中显示 2 个调用。第一次调用RequestMethod设置为,Options而随后的调用是对应的//get设置相应的。postputdeleteRequestMethod

我不记得在我最近处理的任何应用程序中看到过那些(重复的调用),(也许我只是从来没有关注过)所以也许这只是 API 调用的标准操作过程。

这里有什么想法吗?

编辑:回应哈利在下面的建议答案

我正在尝试实施您的答案,但对如何实施仍然有些困惑,这里仔细看看我的设置:

当达到这一点时,它给我一个错误,上面.catch({});写着:

'(error: any) => 0 | 类型的参数 1' 不可分配给类型为“(错误:任何,捕获:Observable<0 | 1>)=> ObservableInput<{}>”的参数。键入'0 | 1' 不可分配给类型 'ObservableInput<{}>'。类型“0”不可分配给类型“ObservableInput<{}>”。)

0 投票
0 回答
283 浏览

javascript - 为什么这个 Angular 4 自定义验证器返回 Promise 或 Observable?确切的逻辑是什么?

我是Angular 4的新手,我对JavaScript\TypeScript不太感兴趣,我对在教程中找到的这个示例有以下疑问。

它与自定义表单验证器的实现有关,但我的怀疑更多是关于ObservablePromise对象。

所以我有这样的事情:

asyncInvalidProjectName ()方法实现了我的自定义验证器的逻辑。

我的疑问是:

1)在我看来,这个方法可以返回一个Promise对象或一个Observable对象。

为什么?在我看来,它总是返回一个Promise对象,表示表单中的输入是否有效。为什么在签名中似乎也可以返回一个Observable

2) 究竟什么代表了Promise对象,与Observable有什么区别?(据我所知,Observable 用于对事件变化做出反应)

0 投票
2 回答
2030 浏览

angular - 完成所有多个服务调用后执行代码

完成所有服务调用后,我需要执行一些代码,因为我需要来自每个服务调用的数据。
我有我的主要 ts 文件、服务 ts 文件和 api 控制器,其中将发生 db hit。

我的主要 Ts 文件代码

服务组件.ts 文件

从 serviceComponent.ts 调用 api 控制器并进行 db hit。
我面临的问题是在完成服务调用之前执行的服务调用之后存在一些代码,并且数据显示未定义,因为没有为数组分配值。
在 jquery 中,我们有操作员$.When(),里面的所有服务都将执行,然后继续执行其他代码。是否有任何操作员在角度 4
完成所有服务调用后更好,代码应该执行。需要帮助
在此先感谢

0 投票
1 回答
70 浏览

angular - 将 Promise 的结果桥接到 Observable

如果问一个愚蠢的问题,请提前道歉。我进行了搜索,但找不到我正在寻找的答案。

我需要将Promise 中返回的index值作为参数传递给我的 Observable: