2009-11-12 2 views
1

Каким образом парадигма функционального программирования связана с разделяемыми ресурсами, необходимыми для поддержания состояния?Управление общим ресурсом с использованием стиля функционального программирования в JavaScript

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

Ресурс содержит связывание информации о состоянии, связанной с ним, включая такие вещи, как учетные данные, время кеша, интервалы опроса, уже посещенные ссылки и другие материалы, необходимые для взаимодействия с службой данных RESTful. Важно то, что сеанс HTTP должен работать последовательно. Одновременно должен быть разрешен доступ только к одному вызывающему абоненту, а следующий вызывающий абонент не может использовать его до тех пор, пока сервер не ответит первому абоненту.

Вкратце я делаю это, свертывая собственный буфер (простой массив запросов JavaScript, выстроенный в пуле). Тем не менее, программа особенно подвержена дефектам из-за всех изменяемых данных, поэтому я пытаюсь реорганизовать, используя более функциональный дизайн программирования.

Из того, что я понимаю, способ управления состоянием в функциональном программировании - передать копию новой структуры данных вызывающему, а не изменять переменные состояния объекта. Это отлично по большей части, за исключением того, что если я повторно создаю общий ресурс (сеанс HTTP) для каждого вызова API, то HTTP-сервис (клиент RESTful) становится непоследовательным, создавая ошибки на сервере.

ответ

1

не подвергайте сеанс http, а вместо этого запрашивайте запросы очереди кодов клиента, каждый из которых вызывает функцию с ответом.

+0

Да, я в настоящее время заказываю запросы в буфере/пуле, но мне кажется, что мне нужно инкапсулировать сеанс http лучше, чтобы он не был открыт для api, а затем я могу выполнить все свое функциональное программирование внутри капсулы , –

Смежные вопросы