Angular2 Http POST抛出订阅者异常

时间:2016-10-21 17:36:59

标签: javascript angular angular2-services

我在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时,我收到以下错误:

Error when "onSubmit" method is called

非常感谢有关错误的任何信息。

1 个答案:

答案 0 :(得分:0)

解决方案是更改返回类test()的{​​{1}}方法的数据类型:

可注射服务

CompanyService

<强>组件

我删除了3参数,因为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')); } 只允许2个参数:成功函数和错误函数

Observable<any>