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

Господа, а есть какой то паттерн реализации очереди в JS?



У меня подписка на стор с массивом внутри и нужно выполнять асинхронные действия с элементами ( добавлять/обновлять их в Map )

Проблема в том что стор может обновляться каждые 10 мс, и он не дожидается предыдущей обработки .subscribe

11 ответов

18 просмотров

Я оьычно в рабитмкю сгружаю

Мьютекс ?

ilya ~$- Автор вопроса
Мишаня
Мьютекс ?

Да, он и нужен. А нет референсной реализации или хорошего пакета?

https://www.effect.website/ возможно вот

Вот пример реализации асинхронной очереди https://pastebin.ubuntu.com/p/HgtnsN5s5Q/ Можно доработать сделав параметр для ограничения количества паралельно выполняющихся асинхронных операций, если это требуется

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

stalkerg
это вполне себе синхронная очередь

Да действительно я упустил это при переделке - убрал сет таймаут при запуске таска)

я не до конца понял что именно вы делаете, но кажется вам нужен дебаунс на сторе. поищите, есть несколько готовых реализаций

1 1
я не до конца понял что именно вы делаете, но каже...

ему скорее всего нужен консистентный стор пока идёт процесс обработки после последнего обновления. Так как клонировать весь стор на каждый чих не эффективно, а MVCC сюда вводить не рационально то просто lock должен спасти. Но да, деталей не хватает.

https://github.com/sveltetools/svelte-asyncable

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

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

а через 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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
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
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта