当 Angular Store Effects 获取数据时,有时会出现它不等待相关选择器数据的问题。解决这个问题的方法是使用“withLatestFrom”运算符等待选择器数据。例如:
import { Injectable } from '@angular/core';
import { Actions, Effect, ofType } from '@ngrx/effects';
import { Store, select } from '@ngrx/store';
import { Observable } from 'rxjs';
import { map, withLatestFrom } from 'rxjs/operators';
@Injectable()
export class MyEffects {
@Effect()
myEffect$: Observable = this.actions$.pipe(
ofType('MY_ACTION'),
withLatestFrom(this.store.pipe(select(mySelector))),
map(([action, myData]) => {
// do something with myData
})
);
constructor(
private actions$: Actions,
private store: Store
) {}
}
在上述示例中,使用 withLatestFrom 运算符等待 mySelector 的数据。使用解构函数获取 myData,并进行需要的操作。
上一篇:AgularFire合并两个流
下一篇:A股专业SDWAN厂商