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

Всем привет. Такой вопрос - у меня есть желание сделать

Flow, который по каждому вызову collect будет инициализировать получение данных из интернета и выдачу этих данных в коллектор. Нюанс в том, что flow мне не подходит, потому что там есть требование вызова emit в том же диспетчере, channelFlow почему-то не завершается. При этом обычное создание объекта с имплементацией Flow работает как нужно, но приходится навешивать InternalCoroutinesApi (плюс, всё в будущем может поломаться, исходя из описания InternalCoroutinesApi). Вопрос в том, как мне реализовать нужную штуку в рамках Flow, но без необходимости плясок вокруг определённых скоупов, аннотаций и прочего?

7 ответов

22 просмотра

думаю надо разобраться, почему не завершается channelFlow можешь показать пример кода с channelFlow?

Алексей-Овсянников Автор вопроса

вспомнил, с канальным флоу у меня не билдится

но если не подойдёт, то можно попробовать унаследовать AbstractFlow, там нет Internal аннотации она по сути нужна, потому что Flow не проверяет, что контекст не меняется на каждом emit в AbstractFlow по сути только и есть, что проверка, что каждый emit происходит с одного контекста

Алексей Овсянников
мне нужно из разных

emit - должен быть всего из одного, это контракт flow даже если делается через канал, emit всё равно там происходит из одного

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта