代码之家  ›  专栏  ›  技术社区  ›  uma

有什么方法可以直接返回字符串值跟随方法吗?

  •  0
  • uma  · 技术社区  · 4 年前

    我的第二个问题是,如果我做不到,如何从可观察事物中获取价值。?目前我把它赋给一个局部变量,并在方法中使用。实际上,这种方法是正确的,我需要知道如何删除返回类型。

    readonly id$: Observable<string> = this.store.select(selectUser)
        .pipe(
         mergeMap((currentUser: CurrentUser) => {
            this.localid = currentUser.id; //assign local variable
            return currentUser.id; //retrn value
          }), shareReplayUntil(this.destroySub));
    
    0 回复  |  直到 4 年前
        1
  •  2
  •   acorbeil    4 年前

    如果我能理解, this.store.select 是可观察的。这取决于后面可观察到的类型 this.store.select(本店选择) 但是你可以订阅一个observate来获取值。不需要 pipe mergeMap .

    this.store.select(selectUser).subscribe(
      (currentUser: CurrentUser) => { // <-- here you will get the new value
        this.localid = currentUser.id; // <-- and you can assign it
      }
    )
    

    使用您的代码:

    this.store.select(selectUser)
    .pipe(
     mergeMap((currentUser: CurrentUser) => {
        return currentUser.id; //return value to the subscribers
      }), shareReplayUntil(this.destroySub)
    ).subcribe(id => this.localid = id); // because of the mergeMap we get the id directly