【问题标题】:Angular2: unable to return a json mapped from an Http responseAngular2:无法返回从 Http 响应映射的 json
【发布时间】:2017-04-09 18:10:47
【问题描述】:

在我的服务中,我执行一个 http 调用并将响应返回为 Observable

doQuery ( query: String ) : Observable<any> {
    return this.http.request(queryURL) ;   
}

并且在我订阅的组件中

this.service
    .doQuery(this.query)
    .subscribe((res: any) => {
        console.log ("Res");
        console.log(res);
    });

这样做确实有效;我可以在控制台中看到 Response 对象的转储

当我想从服务返回已映射为 json 的响应时,我的问题出现了。

我正在尝试做tyhis

return this.http.request(queryURL).map((res: any) => res.json());

但在运行时我遇到了一个不起眼的 javascript 错误(准确地说,这是来自 Zone.js)

Error: Permission denied to access property "rejection"

我已经尝试将返回类型从Observable&lt;any&gt; 更改为Observable&lt;any[]&gt;,如书上所见,但没有成功。

更新: 实际上我解决了将这个添加到服务文件中 import 'rxjs/Rx';

我做错了什么?为什么需要这个导入?不就是导入Rxjs的map算子吗?

【问题讨论】:

  • 如果您找到了问题的答案,请将您自己的回复与解决方案一起添加以供其他人查找。

标签: javascript json angular observable


【解决方案1】:

在这种特定情况下,我解决了添加导入

import `rxjs/Rx`;

但在其他 99% 的时间里,这种情况再次发生在我身上,这个错误是由于在 @NgModule 中的 providers 数组中缺少一项服务声明

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多