您将如何从史诗订阅?

时间:2018-08-11 22:56:42

标签: rxjs redux-observable

我有一部史诗,可以将动作通过管道传递给代表WebSocket的主题,就像这样:

const webSocketSendEpic = (action$, state$, { socket }) =>
  action$.ofType('SEND_MESSAGE')
    .pluck('payload')
    .subscribe(socket)

但是,这不是真正的史诗,因为它返回Subscription而不是Observable。我可以通过在其周围加上一个块并返回EMPTY来规避此问题,但这并不正确。实现这样的目标的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您应该能够使用do而不是subscribe连接套接字,然后像对待其他任何史诗般对待它:

const webSocketSendEpic = (action$, state$, { socket }) =>
  action$.ofType('SEND_MESSAGE')
    .pluck('payload')
    .do(socket)
    .ignoreElements();

您可以使用ignoreElements来防止该史诗发射采摘的有效载荷。