如何正确赶上例外,从http.request()? [英] How to catch exception correctly from http.request()?

查看:191
本文介绍了如何正确赶上例外,从http.request()?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的code的部分:

import {Injectable} from 'angular2/core';
import {Http, Headers, Request, Response} from 'angular2/http';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/map';

@Injectable()
export class myClass {

  constructor(protected http: Http) {}

  public myMethod() {
    let request = new Request({
      method: "GET",
      url: "http://my_url"
    });

    return this.http.request(request)
      .map(res => res.json())
      .catch(this.handleError); // Trouble line. 
                                // Without this line code works perfectly.
  }

  public handleError(error: Response) {
    console.error(error);
    return Observable.throw(error.json().error || 'Server error');
  }

}

myMethod的()产生的异常浏览器的控制台:

myMethod() produces exception in console of browser:

原始异常:类型错误:。this.http.request(...)地图(...)美中不足的是不是一个函数

ORIGINAL EXCEPTION: TypeError: this.http.request(...).map(...).catch is not a function

如何解决?

推荐答案

或许你可以尝试在进口增加的:

Perhaps you can try adding this in your imports:

import 'rxjs/add/operator/catch';

您也可以这样做:

return this.http.request(request)
  .map(res => res.json())
  .subscribe(
    data => console.log(data),
    err => console.log(err),
    () => console.log('yay')
  );

这篇关于如何正确赶上例外,从http.request()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆