Angular2:无法返回从Http响应映射的json

时间:2016-11-25 10:55:19

标签: javascript json angular observable

在我的服务中,我执行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对象的转储

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

我想做tyhis

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

但是在运行时我得到了一个模糊的javascript错误(这是来自Zone.js的确切)

Error: Permission denied to access property "rejection"

我已经尝试将返回类型从Observable<any>更改为Observable<any[]>,如图书所示,但没有成功。

更新: 实际上我已经解决了添加到服务文件中的问题 import 'rxjs/Rx';

我做错了什么?为什么需要这种进口?不是导入Rxjs的地图运算符的方法吗?

1 个答案:

答案 0 :(得分:-1)

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

import `rxjs/Rx`;

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