【问题标题】:How can I get a value from an observer inside another?我怎样才能从另一个观察者那里得到一个值?
【发布时间】:2020-09-21 00:06:54
【问题描述】:

如何让这一行在订阅中返回一个值?它正在返回一个可观察对象:

let test = undefined;
of(test, this.myService.whatever(var1, var2))
    .pipe(
        first(n=>!!n) 
    ).subscribe(result=>console.log(result)); // returns Observable, should return value.

myservice.whatever 返回一个 observable。我想让它在管道内解决。像这样的:

let test = undefined;
of(test, this.myService.whatever(var1, var2))
    .pipe(
        first(n=>!!n),
        getValueFromObserver() // if it's an observer get the value
    ).subscribe(result=>console.log(result)); 

这可能吗? 我要做的是检查观察者的序列内部是否有局部变量有值,如果没有,则从后端获取值。我想这样做是因为真正的代码要复杂得多,并且这个 observable 的结果将与其他观察者分叉。

【问题讨论】:

    标签: angular typescript rxjs rxjs-observables


    【解决方案1】:

    尚未完全测试,但理论上你可以检查instanceof

    let test = undefined;
    of(test, this.myService.whatever(var1, var2))
        .pipe(
            first(n=>!!n),
            switchMap(value=>value instanceof Observable?value:of(value))
        ).subscribe(result=>console.log(result)); 
    

    【讨论】:

      猜你喜欢
      • 2018-04-09
      • 2019-06-21
      • 2023-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-15
      • 2015-06-08
      • 1970-01-01
      相关资源
      最近更新 更多