如何将现有的事件驱动库包装到NGRX中?

时间:2018-01-29 02:21:15

标签: ngrx ngrx-effects

如何使用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$;
    });

但是有更好的方法,如何实施?

0 个答案:

没有答案