【发布时间】:2017-07-13 08:29:42
【问题描述】:
试图弄清楚如何让我的史诗开始,它将订阅一个 websocket,然后在发出的事件从 websocket 滚入时调度一些操作。
我看到的示例使用的是多路复用,实际上并没有在 websocket 上调用订阅,我对更改它有点困惑。
我是这样开始的。但我相信 redux observable 想要一个
const socket$ = Observable.webSocket<DataEvent>(
"ws://thewebsocketurl"
);
const bankStreamEpic = (action$, store) =>
action$.ofType(START_BANK_STREAM).mergeMap(action => {
console.log("in epic mergeMap");
socket$
.subscribe(
e => {
console.log("dispatch event " + e);
distributeEvent(e);
},
e => {
logger.log("AmbassadorsDataService", "Unclean socket closure");
},
() => {
logger.log("AmbassadorsDataService", "Socket connection closed");
}
)
});
function distributeEvent(event: DataEvent) : void {
//this.logger.log('AmbassadorsDataService', 'Event Received: ' + event.command + ' and id: ' + event.id);
if(event.source === '/ambassadors/bank') {
if( event.command === 'REMOVE') {
removeDataEvent(event);
}
else if(event.command == 'ADD') {
loadDataEvent(event);
}
}
}
它抛出一个错误: 未捕获的类型错误:您在预期流的位置提供了“未定义”。您可以提供 Observable、Promise、Array 或 Iterable。
任何帮助将不胜感激!
谢谢
【问题讨论】:
标签: redux-observable