我如何拦截可观察对象以获取值并仍返回可观察对象?

时间:2020-07-18 20:45:22

标签: angular rxjs

我正在用角度服务编写一个登录函数,该函数返回一个可观察值。我想拦截流,获取值并将其设置为变量而无需订阅。我试图使用管道和地图运算符,但没有用。最好的方法是什么?

import { Observable, of } from 'rxjs';
import { HttpClient } from '@angular/common/http';
import { map } from 'rxjs/operators';
 
@Injectable({
  providedIn: 'root',
})
export class AppService {
  signInUrl: string = 'http://localhost:3000/api/v1/users/login';
  user: any;
  constructor(private _http: HttpClient) {}
 
  getUser(): Observable<any> {
    return of(this.user);
  }
 
 signIn(obj): Observable<any> {
    return this._http.post(this.signInUrl, obj).pipe(
      map((u) => {
        this.user = u;
      })
    );
  }
 
  logOut(): void {
    this.user = null;
  }
}

2 个答案:

答案 0 :(得分:0)

您的代码应该可以正常工作,只是不会被触发。我认为您忘记了使用该方法。

例如:signIn(obj).subscribe();应该可以解决问题。

答案 1 :(得分:-1)

我认为您要做的是将“地图”更改为“点击”

相关问题