【发布时间】:2020-09-16 12:34:28
【问题描述】:
我的函数access() 每次调用都需要订阅一次。
在下面的 sn-p 中,$valueChanges 为所做的每个更改发出数据。在没有const $ = ... 和$.unsubscribe() 的情况下调用access(),$valueChanges observable 会发出不必要的值流。
是否有一个 rxjs 运算符/函数在函数内部的订阅中发出一次?即使该函数被多次调用,订阅也会发出一次?
access() {
const $ = $valueChanges.pipe(
map((res) =>
...
),
).subscribe((res) => {
...
$.unsubscribe();
});
}
【问题讨论】:
-
@dmcgrandle 是的,我将
of()运算符更改为一些valueChangesobservable,它会在值更改时发出值。 -
然后更改问题的详细信息以显示您实际做了什么。到目前为止,您给出的内容没有您所描述的问题。更好的是,设置一个StackBlitz 来显示正在发生的问题。
-
感谢您提供更多信息。
$valueChanges是否是一个热的可观察对象,无论是否订阅,它都一直在发射?如果是这样,当您调用access()时,您是否希望$立即发出$valueChanges发出的最后一个值(只要是过去),还是要等待@ 发出的下一个值987654339@,发出那个然后完成? -
是
$valueChanges和BehaviorSubject(文档here)?
标签: javascript angular reactjs typescript rxjs