2016-03-26 127 views
0

Angular2 http请求返回observable。在observables的文档中,您可以在observable上使用函数.map()Angular2 RxJS为什么map()没有工作?

但是,当我在我的HTTP观察到的使用.map()我得到这个错误:

argument is not a function. Are you looking for `mapTo()`? 

.mapTo()似乎提供了有点类似的行为,但我不知道....为什么不.map()在这里工作?

编辑:

谢谢,这里有一些信息。我正在使用webpack和Angular 2.0.0-beta.8。

缩写的实际代码如下:

import { Observable, map, concatMap, flatMap, reduce, subscribe } from 'rxjs'; 

    getRequest(endpoint) { 
    return this.http.get('https://api.fitbit.com/1/user/-/' + endpoint, 
     { 
     headers: { 
      Authorization: 'Bearer ' + 
      localStorage.getItem(this.name + 'AccessToken'), 
      'Content-Type': 'application/json' 
     } 
     }).map(response => response.json()); 
    } 

    var profileRequest = this.getRequest('profile.json'); 
    var profileRequestLog = profileRequest.map('profile fetched'); 
+0

我是相当新的这个工作,所以不知道如果我可以提供帮助。你可以发表你如何提出你的http请求的样本,也可能是你正在使用什么版本的angular 2? –

+0

如果您已正确包含RxJS,则可以在可观察IF上使用'.map()'。你有没有这样做?你确定它是正确加载和映射的吗?显示您的代码和您的模块配置将使我们更有可能指出您朝着正确的方向。 –

+0

你能否请添加一些代码? – inoabrian

回答

2

请确保以下Rx.min.js文件包含在index.html

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.9/Rx.min.js"> 
</script> //CDN reference 

然后你就可以导入以下与Observable及其operators

import {Observable} from 'rxjs/Observable'; 
import 'rxjs/Rx'; 
+0

我已经加入了一堆进口,但是所有这些进口都是必要的吗?不应该包含相关的RxJS函数,比如'map()'? – benshope

+0

是rxjs会添加它,但你必须按照我的方式。导入rxjs/Rx将导入所有rx运算符。注意,如果你这样做,你不需要调用/导入单个运营商。 – micronyks

相关问题