使用JavaScript中的函数式编程风格管理共享资源

使用JavaScript中的函数式编程风格管理共享资源,javascript,functional-programming,resources,shared,Javascript,Functional Programming,Resources,Shared,函数式编程范式如何处理需要维护状态的共享资源 我有一个JavaScipt程序,允许多个调用者访问共享资源,在本例中是一个经过身份验证的HTTP会话 该资源具有大量与之相关的状态信息,包括凭证、缓存时间、轮询间隔、已访问的链接,以及与RESTful数据服务交互所需的其他内容。重要的是HTTP会话需要串行操作。一次只允许一个调用方访问它,在服务器响应第一个调用方之前,可能不允许下一个调用方使用它 现在,我通过滚动自己的缓冲区(一个简单的JavaScript请求数组排列在一个池中)来实现这一点。然而,

函数式编程范式如何处理需要维护状态的共享资源

我有一个JavaScipt程序,允许多个调用者访问共享资源,在本例中是一个经过身份验证的HTTP会话

该资源具有大量与之相关的状态信息,包括凭证、缓存时间、轮询间隔、已访问的链接,以及与RESTful数据服务交互所需的其他内容。重要的是HTTP会话需要串行操作。一次只允许一个调用方访问它,在服务器响应第一个调用方之前,可能不允许下一个调用方使用它

现在,我通过滚动自己的缓冲区(一个简单的JavaScript请求数组排列在一个池中)来实现这一点。然而,由于所有的可变数据,该程序特别容易出现缺陷,因此我尝试使用功能性更强的编程设计进行重构


据我所知,函数式编程中处理状态的方法是将新数据结构的副本传递给调用方,而不是修改对象上的状态变量。这在大多数情况下都很好,除非我为每个API调用重新创建共享资源(HTTP会话),否则HTTP服务(RESTful客户端)会变得不一致,在服务器上产生错误。

不要公开HTTP会话,而是让客户端代码排队请求,每一个都有一个函数将被响应调用。

不要公开http会话,而是让客户端代码排队请求,每个请求都有一个函数将被响应调用。

是的,我目前正在缓冲区/池中排队请求,但我想我需要更好地封装http会话,这样它就不会暴露于api中,然后我可以在胶囊内完成所有函数编程。是的,我目前正在缓冲区/池中排队请求,但我认为我需要更好地封装http会话,使其不暴露于api,然后我可以在胶囊内完成所有函数编程。