Angular2 Http POST 抛出订阅者异常

Angular2 Http POST throws Subscriber Exception

我在 Angular 2 应用程序中有以下文件:

可注射服务

@Injectable()  
export class CompanyService{
    constructor(private http:Http){}

    public test():any{
        return this.http.get('http://echo.jsontest.com/title/ipsum/content/blah')
        .map(res => res.json())
        .catch((error:any) => Observable.throw(error.json().error || 'Server error'));
    }
}

组件

@Component({
    templateUrl: 'company.html',
    providers: [CompanyService]
})
export class CompanyPage{
    constructor(private companyServ:CompanyService){}

    //This method is used from a submit for using ngSubmit
    public onSubmit():void{
        this.companyServ.test().subscribe(data => {
            console.log('Data', data);
        }, err => {
            console.error('Error', err);
        }, console.log('End'));
    }
}

呈现视图并调用方法 onSubmit 时,出现以下错误:

如能提供有关该错误的任何信息,我们将不胜感激。

解决方案是更改 returns class test() 方法的数据类型 CompanyService:

可注射服务

public test():Observable<any>{
    return this.http.get('http://echo.jsontest.com/title/ipsum/content/blah')
           .map(res => res.json())
           .catch((error:any) => Observable.throw(error.json().error || 'Server error'));
}

组件

我删除了 3 个参数,因为 Observable<any> 只允许 2 个参数:成功函数和错误函数

public onSubmit():void{
    this.companyServ.test().subscribe(data => {
        console.log('Data', data);
    }, err => {
        console.error('Error', err);
    });
}