Size: a a a

React — русскоговорящее сообщество

2021 January 28

VT

Vadim Tartakovsky in React — русскоговорящее сообщество
Привет, работаю с Redux Saga. У меня есть подписки по каким я получаю данные с вебсокета. Есть channelCreator в каком я создаю eventChannel с возможностью подпискии отписки от сокета. Изначально все данные приходят отлично, но если я делаю отписку и канал закрывается - данные приходят в listener но не попадают в yield take(channel). Если канал не закрывать через channel.close() - все работает отлично

https://gist.github.com/9766c3aaaff3de81d9d9332007c34760
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Vadim Tartakovsky
Привет, работаю с Redux Saga. У меня есть подписки по каким я получаю данные с вебсокета. Есть channelCreator в каком я создаю eventChannel с возможностью подпискии отписки от сокета. Изначально все данные приходят отлично, но если я делаю отписку и канал закрывается - данные приходят в listener но не попадают в yield take(channel). Если канал не закрывать через channel.close() - все работает отлично

https://gist.github.com/9766c3aaaff3de81d9d9332007c34760
вот одно из преимуществ пробелов над табов
источник

И

Иван in React — русскоговорящее сообщество
источник

АК

Александр Козлов... in React — русскоговорящее сообщество
о как, понял, спасибо большое, до memo еще не дошел
источник

И

Иван in React — русскоговорящее сообщество
Александр Козлов
о как, понял, спасибо большое, до memo еще не дошел
а если поиграться с useCallback, то можно избавиться от вот этого куска:

(prevProps, nextProps) =>
 prevProps.item.completed === nextProps.item.completed
источник

RH

Rauf Heshimov in React — русскоговорящее сообщество
Почему бывает так что ошибка приходит но ловить в catch не получаетсья ? redux-saga
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Rauf Heshimov
Почему бывает так что ошибка приходит но ловить в catch не получаетсья ? redux-saga
покажи эту сагу
источник

RH

Rauf Heshimov in React — русскоговорящее сообщество
Да самая обычная сага стандартный try catch finally ничего необычного
источник

RH

Rauf Heshimov in React — русскоговорящее сообщество
function* generateActStatement({ payload }) {
 yield all([
   put(toggleLoading(true, [LoadingId.GENERATE_ACT_STATEMENT_LOADING])),
   put(removeError(ErrorId.GENERATE_ACT_STATEMENT_ERROR)),
 ]);
 try {
   const generatedActs = yield call(api.postGeneratedActs, payload.data);
 } catch (e) {
   yield put(pushError(ErrorId.GENERATE_ACT_STATEMENT_ERROR, e)); // сюда не заходит хотя ошибка 500
 } finally {
   yield put(toggleLoading(false, [LoadingId.GENERATE_ACT_STATEMENT_LOADING]));
 }
}
источник

IB

Igor Belogurov in React — русскоговорящее сообщество
бтв, а есть норм тема кодсандбокса для вскода?
источник

RH

Rauf Heshimov in React — русскоговорящее сообщество
Как это возможно вообще 😖
источник

И

Иван in React — русскоговорящее сообщество
Igor Belogurov
бтв, а есть норм тема кодсандбокса для вскода?
я хз, пользуюсь темой One Dark для webstorm
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Rauf Heshimov
function* generateActStatement({ payload }) {
 yield all([
   put(toggleLoading(true, [LoadingId.GENERATE_ACT_STATEMENT_LOADING])),
   put(removeError(ErrorId.GENERATE_ACT_STATEMENT_ERROR)),
 ]);
 try {
   const generatedActs = yield call(api.postGeneratedActs, payload.data);
 } catch (e) {
   yield put(pushError(ErrorId.GENERATE_ACT_STATEMENT_ERROR, e)); // сюда не заходит хотя ошибка 500
 } finally {
   yield put(toggleLoading(false, [LoadingId.GENERATE_ACT_STATEMENT_LOADING]));
 }
}
В api.postGeneratedActs нету обработки ошибки?
источник

И

Иван in React — русскоговорящее сообщество
Rauf Heshimov
Как это возможно вообще 😖
это возможно в одном-единственном случае — api.postGeneratedActs не выбрасывает исключение
источник

RH

Rauf Heshimov in React — русскоговорящее сообщество
Иван
это возможно в одном-единственном случае — api.postGeneratedActs не выбрасывает исключение
Да он не выбрасывает исключение вы правы.Но там обычный axios запрос почему он не ловит в catch и не отправляет к саге
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Rauf Heshimov
Да он не выбрасывает исключение вы правы.Но там обычный axios запрос почему он не ловит в catch и не отправляет к саге
покажи этот запрос
источник

RH

Rauf Heshimov in React — русскоговорящее сообщество
export const postGeneratedActs = (data) =>
 sRequestFunc.post(DATA_DETAILS.ACT_STATEMENT(), data).then((res) => res.data).catch(err => err);
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
Rauf Heshimov
export const postGeneratedActs = (data) =>
 sRequestFunc.post(DATA_DETAILS.ACT_STATEMENT(), data).then((res) => res.data).catch(err => err);
ну вот ты сам обрабатываешь тут ошибку, потому и не идет
источник

RH

Rauf Heshimov in React — русскоговорящее сообщество
Тут тупа в catch не заходит
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Rauf Heshimov
export const postGeneratedActs = (data) =>
 sRequestFunc.post(DATA_DETAILS.ACT_STATEMENT(), data).then((res) => res.data).catch(err => err);
Потому, что этот метод никогда не бросит исключение, а значит блок catch в саге не сработает
Ты съел ошибку
источник