Angular2 Observable和subscribe

时间:2016-10-21 14:35:17

标签: angular observable

我目前的情况是: 我的组件调用类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类,这样我就可以在请求失败时显示消息,或者如果请求成功则显示重定向页面。我怎样才能做到这一点? 感谢。

0 个答案:

没有答案