Ich habe einen eventChannel, um webSockets zu hören, das funktioniert gut.Wie man einen eventChannel schließt, wenn eine bestimmte Aktion auftritt
Ich möchte auch eine Aktion USER_LOGGED_OUT
zuhören und den Kanal schließen.
Ich schließe den Kanal aus dem Kanal durch die Ausgabe END
im Falle eines Socket-Fehler oder Socket-Schließung, aber wie mache ich das auf der Grundlage von externen Aktionen?
Dies ist die Kanal-Schleife:
export function* websocketWatcher() {
const tokenResponse = yield take(RECEIVE_USER_TOKEN);
const accessToken = tokenResponse.payload.data.access_token;
const channel = yield call(createWebsocketChannel, accessToken);
try {
while (true) {
const action = yield take(channel);
yield put(action);
}
} finally {
console.log('Websocket channel terminated');
}
}