Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何在RxJs Observable中捕获失败和取消的请求?_Angular_Rxjs - Fatal编程技术网

Angular 如何在RxJs Observable中捕获失败和取消的请求?

Angular 如何在RxJs Observable中捕获失败和取消的请求?,angular,rxjs,Angular,Rxjs,从一段时间以来,我注意到我有一些XHR没有HTTP状态,但有取消或失败状态 它的末端是镀铬的。在Firefox上,我没有做到这一点 我的应用程序与Angular 4和RxJs 5配合使用 是否有任何解决方案可以帮助我抓住“这个错误”。我称之为“错误”,但实际上并没有错误,因为如果有,我可以很容易地抓住它们 在RxJs中,当我使用catch时,它不会触发,也不会最终触发(或者在订阅结束后触发)。 我也尝试过forkJoin、zip或concat、flatMap或switchMap之类的东西,但在任

从一段时间以来,我注意到我有一些XHR没有HTTP状态,但有取消或失败状态

它的末端是镀铬的。在Firefox上,我没有做到这一点

我的应用程序与Angular 4和RxJs 5配合使用

是否有任何解决方案可以帮助我抓住“这个错误”。我称之为“错误”,但实际上并没有错误,因为如果有,我可以很容易地抓住它们

在RxJs中,当我使用catch时,它不会触发,也不会最终触发(或者在订阅结束后触发)。
我也尝试过forkJoin、zip或concat、flatMap或switchMap之类的东西,但在任何情况下似乎都不起作用。

我不确定取消的请求是否会触发错误状态,但您也可以向可观察链添加超时,这将在最后触发错误

http.get(..).timeout(2000).catch()

我不确定取消的请求是否会触发错误状态,但您也可以向可观察链添加一个超时,该超时将在最后触发错误

http.get(..).timeout(2000).catch()

正如您在评论中提到的,当您在查看页面(即.html)上显示这些内容时,当您面临XSS问题时,不会触发捕获。我认为您需要使用DomSanitizer

DomSanitizer通过清理值以确保在不同的DOM上下文中安全使用,帮助防止跨站点脚本安全漏洞(xs)()

组件.ts
文件中使用

从'@angular/platform browser'导入{domsanizer}

this.yourVariable = domsanitizer.bypassSecurityTrustHtml('<p>stack Overflow</p>');
this.yourVariable=domsanizer.bypassSecurityTrustHtml(“堆栈溢出”);
并在视图中使用变量
,如下所示


这不会让你在chrome上出错。

正如你在评论中提到的,当你在查看页面(即.html)上显示这些内容时,当你面临XSS问题时,不会触发捕获。我认为你需要使用Domsanizer

DomSanitizer通过清理值以确保在不同的DOM上下文中安全使用,帮助防止跨站点脚本安全漏洞(xs)()

组件.ts
文件中使用

从'@angular/platform browser'导入{domsanizer}

this.yourVariable = domsanitizer.bypassSecurityTrustHtml('<p>stack Overflow</p>');
this.yourVariable=domsanizer.bypassSecurityTrustHtml(“堆栈溢出”);
并在视图中使用变量
,如下所示


这不会让你在chrome上出错。

你在视图中的某个地方使用[innerHTML]吗?你能分享错误的截图和服务cal的片段吗?我使用的是innerHtml,但不是直接为什么http请求。我为xhr提供了一整套服务。您是否在视图中的某个位置使用[innerHTML]?你能分享错误的截图和服务cal的片段吗?我使用的是innerHtml,但不是直接为什么http请求。我有一个专门用于xhr的完整服务。取消的http请求不会触发一个有点奇怪的错误。取消的http请求不会触发一个有点奇怪的错误。