2016-03-26 4 views
0

Angular2 http-запросы возвращают наблюдаемые. В документации для наблюдаемых вы можете использовать функцию .map() по наблюдаемому.Angular2 RxJS Почему карта() не работает?

Но когда я использую .map() на моем HTTP наблюдаемого я получаю эту ошибку:

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

.mapTo() кажется, обеспечивает несколько подобного поведение, но мне интересно .... почему не .map() работы здесь?

EDIT:

Спасибо, здесь немного больше информации. Я использую 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-запрос, а также, может быть, какая версия углового 2 вы используете? –

+0

Вы можете использовать '.map()' на наблюдаемом IF, если вы правильно включили RxJS. Вы сделали это? Вы уверены, что он загружен и правильно отображен? Отображение кода и конфигурации вашего модуля сделало бы гораздо более вероятным, что мы могли бы указать вам в правильном направлении. –

+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

Я включил кучу импорта, но должны ли все эти импорты быть необходимы? Не должны ли угловые2 включать соответствующие функции RxJS, такие как 'map()'? – benshope

+0

Да, rxjs добавит его, но вы должны следовать моему пути. Импорт rxjs/Rx будет импортировать все rx-операторы. Обратите внимание, если вы это сделаете, вам не нужно вызывать/импортировать отдельного оператора. – micronyks

Смежные вопросы