BlocProvider и внутри него async функция на получение данных, соответственно после получения данных происходит emit, но если юзер закрывает страницу раньше отработки функции, то падает ошибка 'Bad state: cannot add events after calling close'.
Как такое хандлить? Везде пихать проверку перед емитом? if(!isClosed) ?
Как понять 'в blocprovider async функция'?
Я имею ввиду в самом блоке функция с async await кодом
Результат async функции внутри блока через await или через then ждется?
скорее всего, где-то в коде происходит добавление event при закрытом блоке
Очень странно) не должна ошибка быть в таком случае
ну, проблема в том, что блок закрывается после закрытия страницы. А так как функция завершается после этого, от того и ошибка
поиском найдите, где вызываете event для этого конкретного блока, и исключите этот вызов там, где блок уже закрыт
блин у вас же четко написано, что невозможно ДОБАВИТЬ СОБЫТИЕ
Я прекрасно понимаю суть проблемы. Это обычная ситуация, человек заходит на страницу, происходит фетч данных и после получения данных идет emit состояния. Так вот, юзер не дожидаясь ответа с сервера, закрывает страницу, но сама асинк функция после этого отрабатывает и в итоге идёт емит после закрытия блока. И я интересуюсь, если это решается как-то кроме проверки на isClosed
покажите, как вы блок создаёте
нда, вы дейстительно не видите разницу между добавлением event и emit состояния (state) блока?
разработчик блока не на столько тупой, чтобы не обыграть данную ошибку))) При закрытии блока все текущие обработки ивентов прерываются и блок ничего не эмитит))
Да, я тут затупил. Так как у меня были такие же проблемы с кубитом, где уже про емит речь.
блок закрывается, а ты пытаешься после этого в него добавить ивент, стэйт тут не при чем
Обсуждают сегодня