我目前的情况是: 我的组件调用类A,它调用类B,最终执行http请求。 成分:
if (form.valid)
let returnvalue = this.userData.login(this.user);
我的班级A(用户数据)
login(user: User) {
return this.authService.doLogin(user).subscribe(data => {
let token:Token = data;
this.storage.set(this.TOKEN, token);
this.storage.set(this.HAS_LOGGED_IN, true);
this.setUsername(user.username);
this.events.publish('user:login');
return data;
}, err =>{
console.log("error login");
return err;
});
B类(认证服务)
// DO HTTP REQUEST
doLogin(user: User) {
var headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': AuthProvider.basicKey });
var options = new RequestOptions({ headers: headers });
let body = new URLSearchParams();
body.set('username', user.username); // the user's search value
body.set('password', user.password);
body.set('grant_type', 'password');
body.set('scope', 'read');
body.set('client_secret', '123456');
body.set('client_id', 'clientapp');
return this.httpPost(`${AuthProvider.urlLogin}`, body, options);
}
我的目标是:在B类执行完成后,我想将另一个observable传递给我的Component类,这样我就可以在请求失败时显示消息,或者如果请求成功则显示重定向页面。我怎样才能做到这一点? 感谢。