在我的 Angular UI 中,我从 API 网关调用了一个端点,例如:
this.http.post(`/order`).subscribe(order => addNewOrderToList(order));
Run Code Online (Sandbox Code Playgroud)
根据微服务的最佳实践,/order处理程序应该发布一个由一个或多个微服务使用的事件,而不是使用同步 REST 相互调用。因此,我编写了以下处理程序:
@RequestMapping
public Future<Order> addOrder() {
CompletableFuture<Order> future = new CompletableFuture<>();
// publish event
// ...
// wait for final event raised by a service.
future.complete(createdOrder);
return future;
}
Run Code Online (Sandbox Code Playgroud)
从 UI 的角度来看,在我的端点返回新订单之前,用户不是不会看到新订单吗?我觉得即使后端是异步的,UI 仍然是同步的。在这种情况下,改进 UI 的最佳做法是什么?