Fetch (JavaScript)- Java 实现

389 阅读1分钟

Javascript fetch 的java版,借此实现,磨练自己的异步、响应式和非阻塞IO运用能力

实现 fetch,需要实现:

最后,适配(适配器模式)成 javascript 的 fetch。

实现一: CompletableFuture + HttpClient

image.png

本着最小可行性产品原则,先用最简单、最快地方式实现,再慢慢从底层开始构建。

  • Promise: 由 CompletableFuture 包装实现
  • Http Request/Respone: 提供和js一样的属性/方法,实现是可以直接包装 java.net.http.HttpResponse
  • HttpClient: 直接使用 JDK11 的 java.net.http.HttpClient
  • TypeError: 继承 RuntimeException

现在,已经完成了70%,示例如下:

carbon.png

image.png

Code: netty-college/fetch at main · onemsg/netty-college (github.com)

慢慢更新,期望最后能用Netty实现HttpClient、直接实现 Promise ~

实现二: Vert.X

实现三: Netty