【问题标题】:how do i intercept an observable to get the value and still return an observable?我如何拦截一个可观察对象以获取值并仍然返回一个可观察对象?
【发布时间】:2020-07-19 13:24:32
【问题描述】:

我在 Angular 服务中编写了一个登录函数,它返回一个 observable。我想拦截流,获取值并设置为变量而不订阅。我尝试使用管道和地图运算符但没有工作。最好的方法是什么?

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;
  }
}

【问题讨论】:

    标签: angular rxjs


    【解决方案1】:

    您的代码应该可以工作,只是没有被触发。我想你忘记订阅这个方法了。

    例如:signIn(obj).subscribe();应该做的伎俩。

    【讨论】:

      【解决方案2】:

      我认为你要做的就是用“点击”改变“地图”

      【讨论】:

        猜你喜欢
        • 2019-02-18
        • 2017-07-12
        • 2020-02-11
        • 1970-01-01
        • 2020-01-25
        • 1970-01-01
        • 2020-01-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多