在不开始另一个循环的情况下更新订阅的数据
Update data subscribed to without starting another cycle
我正在从 ngrx/store 获取数据
我正在订阅数据
this.store.select(somedataList)
.subscribe(myList => {
myList.propertyA = "a different value";
});
订阅并更改 属性 值后,我需要更新商店中的数据。
this.store.dispatch(new UpdateSomeDataList(myList));
一旦我调用 "dispatch",“.subscribe”就会再次启动并创建一个无限循环。
如何在不产生死循环的情况下更新数据?
如果您只需要订阅一次 - 使用 take(1)/first()
RxJS 的运算符
this.store.select(somedataList).pipe(take(1))
在这种情况下,您的订阅将在第一个值后退订
订阅同一商店的部分后调用调度 - 这将是循环,因此您需要重新考虑您的数据流
我正在从 ngrx/store 获取数据 我正在订阅数据
this.store.select(somedataList)
.subscribe(myList => {
myList.propertyA = "a different value";
});
订阅并更改 属性 值后,我需要更新商店中的数据。
this.store.dispatch(new UpdateSomeDataList(myList));
一旦我调用 "dispatch",“.subscribe”就会再次启动并创建一个无限循环。
如何在不产生死循环的情况下更新数据?
如果您只需要订阅一次 - 使用 take(1)/first()
RxJS 的运算符
this.store.select(somedataList).pipe(take(1))
在这种情况下,您的订阅将在第一个值后退订
订阅同一商店的部分后调用调度 - 这将是循环,因此您需要重新考虑您的数据流