71 / 59 / 14
Регистрация: 20.12.2013
Сообщений: 701
|
||||||
1 | ||||||
Асинхронные события в порядке очереди09.08.2024, 22:56. Показов 354. Ответов 3
Метки нет (Все метки)
Здравствуйте.
В теперешнем приближении делаю запуск задачи: при нажатии кнопки - запускаем сокетное соединение, если надо, ждем, когда нам вернется id пользователя для доступа к сокету и изменится состояние сокета - отправляем запрос на создание созвона, ждем, когда вернется id созвона. Не знаю как оформить наглядно, чтобы прилично и понятно выглядел. Просто бы схематично идею. Сейчас так
Например не видно отдельных этапов. А с течением времени я буду смотреть на это и еще больше офигевать. Думал может в виде цепочки промисов как-то, но не придумал. С моими знаниями усложнять боюсь будет катастрофой.
0
|
09.08.2024, 22:56 | |
Ответы с готовыми решениями:
3
Асинхронные очереди Glib Асинхронные события уже доступны? Переместить все элементы первой очереди (в порядке от начала к концу) в конец второй очереди Переместить все элементы первой очереди (в порядке от начала к концу) в конец второй очереди Переместить все элементы первой очереди (в порядке от начала к концу) в конец второй очереди |
молодой
|
|||||||||||||||||||||
11.08.2024, 11:21 | 2 | ||||||||||||||||||||
Сообщение было отмечено AndrSlav как решение
Решение
AndrSlav, у тебя приходит много входных аргументов в кастомный хук useNewGroupCall, если даже он работает через useMemo будет вызываться на каждое изменение зависимостей. Сложно понять что будет происходить, потому что твоя функция хука асинхронная, с большой вероятностью несколько функций хука могут выполняться асинхронно(~одновременно) и там еще больше подводных камней, которые даже через отладчик трудно будет читать.
Одно из решений это декомпозиция и использование возможностей чистого js. У React одна из проблем это перерисовки, чтобы от них избавиться можно писать на чистом js. Я написал небольшой пример, он позволяет решить перечисленные выше проблемы. Модули: - EventEmitter - это аналог событий js - Call - звонок - Connection - соединение Часть функционала который не нуждается в перерисовках написан на чистом js, который потом можно адаптировать, например, EventEmitter можно переделать под стейт менеджер проекта, js es6 модули это по сути глобальный singleton паттерн можно пользоваться их преимуществами. Функционал примера: - input host name - пишем сюда любую строку кроме "правильного хоста" получаем disconnect Две кнопки для того чтобы с имитировать как будет работать при успешном и разорванном соединении - Connect - соединение с хостом - Disconnect - разрыв соединения Звонок - Сall - сначала проверяет соединение если оно уже создано звоним, если нет 3 раза пытаемся соединиться, если успешна хоть одна попытка звоним, попытки можно прервать. - Abort - принудительный обрыв звонка App
1
|
71 / 59 / 14
Регистрация: 20.12.2013
Сообщений: 701
|
||||||
11.08.2024, 12:41 [ТС] | 3 | |||||
Спасибо!
Как-то вызов setCallState в
1
|
молодой
|
|
11.08.2024, 12:59 | 4 |
я этот пример особо не полировал так что если захотеть можно много чего найти, основной посыл это вынести функционал которому не нужны перерендеры в отдельные js модули не компоненты React, или написать логику в стейт менеджере , тут топорно сделан разрыв звонка просто через setCallState(false), в реальном проекте конечно нужно начинать новый звонок только после окончательного разрыва предыдущего звонка.
1
|
11.08.2024, 12:59 | |
11.08.2024, 12:59 | |
Помогаю со студенческими работами здесь
4
Есть ли способ удалить события QTimer, которые уже стоят в очереди? Добавление данных в порядке очереди Вывести элементы очереди в обратном порядке Сортировка входящей почты в порядке очереди Изменение фона Edit в порядке очереди Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации
В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
|
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира
В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
|
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин
История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
|
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией
В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
|
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации
В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
|
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий
В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
|
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO
/ / https:/ / leetcode. com/ studyplan/ top-interview-150/
package topInterview
. . .
|
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
|
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
|
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
|
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
|
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации.
Исполнитель Чертежник работает на координатной плоскости, где может. . .
|