您将如何订阅史诗?
How would you subscribe from an epic?
我有一个史诗,它通过管道将操作传送到表示 WebSocket 的主题中,如下所示:
const webSocketSendEpic = (action$, state$, { socket }) =>
action$.ofType('SEND_MESSAGE')
.pluck('payload')
.subscribe(socket)
然而,这不是一部真正的史诗,因为它 returns 是 Subscription
而不是 Observable
。我可以通过用一个块围绕它并返回 EMPTY
来规避它,但这感觉不正确。实现这样的目标的正确方法是什么?
您应该能够使用 do
而不是 subscribe
连接套接字,然后像对待任何其他史诗一样对待它:
const webSocketSendEpic = (action$, state$, { socket }) =>
action$.ofType('SEND_MESSAGE')
.pluck('payload')
.do(socket)
.ignoreElements();
并且您可以使用 ignoreElements
来防止史诗发射采摘的有效载荷。
我有一个史诗,它通过管道将操作传送到表示 WebSocket 的主题中,如下所示:
const webSocketSendEpic = (action$, state$, { socket }) =>
action$.ofType('SEND_MESSAGE')
.pluck('payload')
.subscribe(socket)
然而,这不是一部真正的史诗,因为它 returns 是 Subscription
而不是 Observable
。我可以通过用一个块围绕它并返回 EMPTY
来规避它,但这感觉不正确。实现这样的目标的正确方法是什么?
您应该能够使用 do
而不是 subscribe
连接套接字,然后像对待任何其他史诗一样对待它:
const webSocketSendEpic = (action$, state$, { socket }) =>
action$.ofType('SEND_MESSAGE')
.pluck('payload')
.do(socket)
.ignoreElements();
并且您可以使用 ignoreElements
来防止史诗发射采摘的有效载荷。