如何使用NGRX包装现有的JS库。在定期发出各种事件之前,需要对库进行初始化。我无法找到这种解决方案的例子。
我的猜测是这样的:@Effect侦听INIT操作并初始化库,设置侦听器并在侦听器发出事件时调度操作。
编辑:这似乎有效:
@Effect()
Initialise$: Observable<Action> = this.actions$
.ofType<ExampleActions.Initialise>(ExampleActions.INITIALISE)
.withLatestFrom(this.store$)
.switchMap(([action, storeState]) => {
const dispatched$ = new Subject<Action>();
// Instantiate library
const library = new Library(storeState.libraryOptions);
library.onEventA(event =>
dispatched$.next(new ExampleActions.ThingAHappened(event.info))
);
library.onEventB(event =>
dispatched$.next(new ExampleActions.ThingBHappened(event.info))
);
return dispatched$;
});
但是有更好的方法,如何实施?