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

问题描述

我编写了一个函数获取用户”值。但我需要知道,我可以直接采用字符串值并将其分配给变量吗?

还有第二个问题,如果我做不到,该如何从Observable中获取价值?目前,我将其分配给局部变量并在方法中使用。实际上,这种方式是正确的,我需要知道如何删除返回类型。

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

解决方法

是的,您可以将值分配给函数内部的局部/全局变量。

如果我理解得很好,user = models.OneToOneField(User,on_delete=models.CASCADE,related_name='user_profile') get_object_or_404(Profile,pk=request.user.user_profile.pk) 是一个可观察的对象。它取决于this.store.select后面的Observable类型,但是您可以订阅Observable以获得值。不需要this.store.selectpipe

示例:

mergeMap

使用您的代码:

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

一个Observable是异步的,它不会立即返回一个值。要获得该值,您必须订阅Observable,后者将向所有订阅者发出新值。