【问题标题】:Observable doesn't recognise map operator [closed]Observable 无法识别地图运算符 [关闭]
【发布时间】:2017-07-24 13:06:23
【问题描述】:

更新

我注意到一个奇怪的行为!我在这项服务中几乎没有方法,我得到不同的响应(一个映射正确,另一个看起来很奇怪)。我更新了代码。

someService.ts:

        import {Http, Response} from '@angular/http';
        import {Observable} from 'rxjs/Observable';
        import 'rxjs/add/operator/map';

        @Injectable()
        export class someService {

          constructor(private _http:Http) {  }

            getSession():Observable<IUser> { // i get a response like that [object object]
          this.getsession = this._http.get("/url");
          return this.getsession.map((response) => <IUser> response.json());
          }

        getUser():Observable<IUser> { // i get the the response object mapped here as one of the comments said the response doesn't have data object
          this.user = this._http.get("/url");
          return this.user.map(response => <User> response.json());
      }
        }

user.component.ts

import { Component, OnInit } from '@angular/core';
import {IUser} from "../common/user";
import {SomeService} from "../services/someService.service";

@Component({
  selector: "user",
  templateUrl: "./user.component.html",
})
export class User implements OnInit {
  user:IUser;

  constructor( private _someService:SomeService) {
  }

  getUser() {
    this._someService.getSession().subscribe((data) => {
      this.user = data; // the response looks like this: [object Object]
    }, (err) => {
      this.errorMsg = ""
    });
  }
  ngOnInit():void {
  }
}

我从休息中得到的 JSON 对象:

{"uid":"***","name":"Test","mail":null,"gname":null,"sn":null,"isEn":true,"user":"**"}

【问题讨论】:

  • “不起作用”到底是什么意思?
  • @Hazu 您在使用地图时是否遇到任何错误?
  • @GünterZöchbauer 如果我使用地图运算符,我会得到未定义!没有映射我得到可观察的对象
  • 请发布确切的错误信息。
  • @NikhilRadadiya 不,我的控制台没有错误

标签: angular rxjs angular2-observables


【解决方案1】:

尝试在顶部添加此导​​入

如果你想要所有运算符

import 'rxjs/Rx';

如果你只想要地图运算符

import 'rxjs/add/operator/map';

如果两者都不起作用,请尝试重新启动您的 IDE

【讨论】:

  • 如果你导入rxjs/Rx,你会得到一切,所以第二次导入是多余的。
  • 对不起,我应该添加一个,否则我会更新我的答案
  • 第二行与问题中显示的完全相同,因此这不太可能成为解决方案。
猜你喜欢
  • 2013-02-17
  • 1970-01-01
  • 1970-01-01
  • 2017-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-22
相关资源
最近更新 更多