【问题标题】:How would you subscribe from an epic?您将如何订阅史诗?
【发布时间】:2018-08-11 22:56:41
【问题描述】:

我有一个史诗,它将动作传递到代表 WebSocket 的主题中,如下所示:

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

但是,这不是真正的史诗,因为它返回 Subscription 而不是 Observable。我可以通过用一个块包围它并返回EMPTY 来规避这个问题,但这感觉不正确。实现这样的事情的正确方法是什么?

【问题讨论】:

    标签: rxjs redux-observable


    【解决方案1】:

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

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

    您可以使用ignoreElements 来防止史诗发射提取的有效载荷。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      • 2019-01-08
      • 2019-09-06
      • 2015-06-24
      • 2022-10-15
      相关资源
      最近更新 更多