说明: 我正在尝试通过后端和前端之间的通信来解决处理乐观锁定或并发编辑的问题。
当前实施: 前端发出请求时,它包括编码时间戳的特定标头,该时间戳代表用户尝试编辑的数据的版本。收到响应后,响应将包含新编码时间戳的标头,前端会将其存储为下一个请求。
当前问题:
当http.patch()
调用之间的时间足够长,以便在触发下一个请求之前已收到响应时,此方法很好用。但是,如果用户更改数据的速度过快,则请求将失败,因为它们没有最新的数据(例如,时间戳未排列)。
项目详细信息:
我正在使用Angular 7.0 +,@angular-redux/store
和redux-observable
来管理每个http
请求调用的副作用。在同一个epic
中处理多个请求很好,因为可以使用concat
使其同步。但是,如何通过异步调用多个史诗来做到这一点呢?
我想到的另一种选择是使用某种http-interceptor
创建请求队列。每次触发请求时,它都会被推送到队列中。收到响应后,请求将从队列中移出。我只是不知道queue.length > 1
,可以以某种方式等待响应,然后再从队列中发出一系列请求吗?
以前有没有人遇到过这个问题?或对解决方法有想法?