根据有效载荷将最终发出的动作从效果切换

时间:2018-08-02 10:41:07

标签: websocket rxjs ngrx

我有一个使用ngrx的应用

一旦客户端更新了产品,它就会使用网络套接字来更新所有客户端。

这通过订阅套接字来实现,因此在套接字上调用next方法后,它将调用一个处理更新的副作用的动作

但是,现在,在删除和添加时,我想使用相同的套接字效果,但是更改其最终操作调用

或者有人可以提出更好的方法

套接字服务:

export class SocketService {
  socket$ = Observable.webSocket( 'ws://localhost:1234');
}

效果:

//This is called from component to start the update process
    @Effect({dispatch:false}) beginUpdate$: Observable<any> = this.actions$
        .ofType<fromBlogActions.BlogUpdateStartAction>(fromBlogActions.BLOG_UPDATE_START_ACTION)
        .map((action:any)=>{
            console.log(action)
            return action.payload;
        })
        .do((action)=> this.socketService.socket$.next(JSON.stringify(action)))
//Calls the next method to send data to the websocket

//下面的内容监视从websocket发出的数据

//然后调用BlogUpdatedAction,我需要的是根据操作类型调用不同的操作

@Effect() watchSocket$ = this.socketService.socket$
.map((action:BlogPayLoad)=>{
    console.log(action)
    return action
})
.mergeMap((action)=> [new fromBlogActions.BlogUpdatedAction(action)])

1 个答案:

答案 0 :(得分:1)

应该可能是这样的:

TF_INC=-I /home/user/tensorflow_xla/tensorflow/bazel-tensorflow/external/eigen_archive -I /home/user/tensorflow_xla/tensorflow

TF_LIBS=-L/home/user/tensorflow_xla/tensorflow/bazel-bin/tensorflow/compiler/tf2xla/ -lxla_compiled_cpu_function -L/home/user/tensorflow_xla/tensorflow/bazel-bin/tensorflow/compiler/aot -lruntime

CPPFLAGS=-c -std=c++11

xla_hw: main.o MyClass.o
    g++ -o xla_hw main.o MyClass.o $(TF_LIBS)

main.o: main.cpp
    g++ $(CPPFLAGS) -I . $(TF_INC) -I /usr/include main.cpp