如何检索传递给观察者外部 Rxjs Observable 的 next() 的最后一个值

How to retrieve last value passed to next() of an Rxjs Observable outside the observer

我有一个 class 具有 30 多个可观察属性。每次我的服务器收到包含这 30 个属性的有效负载时,我都会为实例的所有相应属性调用 next() 方法,到目前为止一切顺利。

问题是,有时我必须检查订阅该可观察属性的观察者范围之外的属性值。
我想到的是,我必须为所有内容设置重复的属性,一个是可观察的,另一个是有状态的属性,用于保存到达的值供以后使用。
有什么方法可以通过以下方法避免这种情况:Observable.getCurrentValue()?

根据要求,一些示例代码

class Example {
    public subjects = {
        a1: new Subject<any>(),
        a2: new Subject<any>(),
        a3: new Subject<any>(),
        a4: new Subject<any>(),
        a5: new Subject<any>()
    }

    public treatPayload(data: any) {
        for (const prop in data) {
            if (data.hasOwnProperty(prop) && prop in this.subjects){
                Reflect.get(this.subjects, prop).next(data[prop])
            }
        }
    }

    public test() {
        const a1_observable = this.subjects.a1.asObservable()
        const a2_observable = this.subjects.a2.asObservable()

        const example_payload_1 = {
            a1: "first",
            a2: "second",
            a10: "useless"
        }

        const example_payload_2 = {
            a1: "first-second",
            a2: "second-second",
            a10: "useless-second"
        }

        a1_observable.subscribe((a1_new_value: any) => {
            const i_also_want_the_last_value_emitted_by_a2 = a2_observable.last_value() // of course, this doesn't exist
            console.log(a1_new_value)
            console.log(i_also_want_the_last_value_emitted_by_a2)
        })
        
        this.treatPayload(example_payload_1)
        this.treatPayload(example_payload_2)

    }
}

那么,有没有办法在没有管道运算符的情况下检索 i_also_want_the_last_value_emitted_by_a2 的正确值?我认为在 a2_observable.

的管道中发出我可能在订阅者中使用的所有值将是一个问题

您可以使用 BehaviorSubject.value,您可以在其中存储您的服务器数据。