我正在为聊天室订阅2个频道。代码将停留在noCacheHash="1"
,直到第二个频道收到新消息。然后停留在C
,直到第一个频道收到新消息。
如何让2通道分开工作。
A
答案 0 :(得分:0)
为什么不将观察者创建为单独的函数并将其调用两次。例如:
function * chatWatcher(chanName) {
while(true) {
const message = yield take(chanName);
yield put({ type: 'chatroom/newMessage', payload: message });
}
}
function* ChatRoomPageEnter() {
const chanChat = yield call($stomp.eventChannel, 'ChatRoomPage', '/topic/chat');
const chanEcho = yield call($stomp.eventChannel, 'ChatRoomPage', '/user/queue/echo');
yield * chatWatcher(chanChat);
yield * chatWatcher(chanEcho);
}