gpt4 book ai didi

javascript - 在 rxjs 中订阅变量

转载 作者:行者123 更新时间:2023-12-02 23:33:49 24 4
gpt4 key购买 nike

在我的组件中,我订阅了这样的变量:

import { Subject, of } from 'rxjs'

....
distance: number
constructor() {
this.distance = 0;
this.getDistance().subscribe(
(newDistanceValue) => {
console.log('newDistanceValue', newDistanceValue)
}
)
....
}

getDistance(): Observable<number> {
return of(this.distance);
}

我得到以下输出,作为变量的初始值。

newDistanceValue 0

...但是当我在组件的其他方法中更改值时,订阅者不会输出新的距离值。

我错过了什么?

最佳答案

这是 rxjs 而不是 rsjx :)

每次调用getDistance时,您都会生成一个新的Observable ,并且它只发出一个值,即 distance 的当前值,你应该将其设为 BehaviorSubject相反

import { BehaviorSubject } from 'rxjs'

....
distance$ = new BehaviorSubject(0)
constructor() {
this.distance$.subscribe(
(newDistanceValue) => {
console.log('newDistanceValue', newDistanceValue)
}
)
// or get value of distance synchronously
console.log(this.distance$.getValue())
....
}

foo() {
this.distance$.next(1)
}

关于javascript - 在 rxjs 中订阅变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56374994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com