169 похожих чатов

Всем привет. Кто-то сталкивался с такой проблемой? Допустим есть страница на которой

BlocProvider и внутри него async функция на получение данных, соответственно после получения данных происходит emit, но если юзер закрывает страницу раньше отработки функции, то падает ошибка 'Bad state: cannot add events after calling close'.
Как такое хандлить? Везде пихать проверку перед емитом? if(!isClosed) ?

15 ответов

399 просмотров

Как понять 'в blocprovider async функция'?

Theodor- Автор вопроса
Kirill Fokin
Как понять 'в blocprovider async функция'?

Я имею ввиду в самом блоке функция с async await кодом

Theodor
Я имею ввиду в самом блоке функция с async await к...

Результат async функции внутри блока через await или через then ждется?

скорее всего, где-то в коде происходит добавление event при закрытом блоке

Theodor
await

Очень странно) не должна ошибка быть в таком случае

Theodor- Автор вопроса
Kirill Fokin
Очень странно) не должна ошибка быть в таком случа...

ну, проблема в том, что блок закрывается после закрытия страницы. А так как функция завершается после этого, от того и ошибка

поиском найдите, где вызываете event для этого конкретного блока, и исключите этот вызов там, где блок уже закрыт

Theodor
ну, проблема в том, что блок закрывается после зак...

блин у вас же четко написано, что невозможно ДОБАВИТЬ СОБЫТИЕ

Theodor- Автор вопроса
Vyacheslav
поиском найдите, где вызываете event для этого кон...

Я прекрасно понимаю суть проблемы. Это обычная ситуация, человек заходит на страницу, происходит фетч данных и после получения данных идет emit состояния. Так вот, юзер не дожидаясь ответа с сервера, закрывает страницу, но сама асинк функция после этого отрабатывает и в итоге идёт емит после закрытия блока. И я интересуюсь, если это решается как-то кроме проверки на isClosed

Theodor
Я прекрасно понимаю суть проблемы. Это обычная си...

нда, вы дейстительно не видите разницу между добавлением event и emit состояния (state) блока?

Theodor
Я прекрасно понимаю суть проблемы. Это обычная си...

разработчик блока не на столько тупой, чтобы не обыграть данную ошибку))) При закрытии блока все текущие обработки ивентов прерываются и блок ничего не эмитит))

Theodor- Автор вопроса
Vyacheslav
нда, вы дейстительно не видите разницу между добав...

Да, я тут затупил. Так как у меня были такие же проблемы с кубитом, где уже про емит речь.

Theodor
Да, я тут затупил. Так как у меня были такие же пр...

блок закрывается, а ты пытаешься после этого в него добавить ивент, стэйт тут не при чем

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Я не понимаю, это троллинг или что? Швабрика поддерживают, который буквально пишет на ассемблере взаимодействия с винапи. Я это ещё написал загрузчик и хоть что-то изучаю в о...
Shadow Akira
6
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Карта сайта