如何(异步)使用由仆人的流生成器生成的蒸汽端点?



服务方文档介绍了如何创建流式处理终结点:

type StreamAPI = "userStream" :> StreamGet NewlineFraming JSON (StreamGenerator User)
streamAPI :: Proxy StreamAPI
streamAPI = Proxy
streamUsers :: StreamGenerator User

现在的问题是客户端(例如用javascript编写(如何以异步方式使用端点?

注意:在较新的servant(0.15 IIRC(中,流被重构了。但是,如何在 JavaScript 中使用流式处理终结点的问题与后端实现无关。

例如,如果你使用 Fetch API,你可以使用阅读器 API,这在 MDN 中有很好的解释。总结一下:

// Fetch the original image
  fetch('./tortoise.png')
  // Retrieve its body as ReadableStream
  .then(response => {
    const reader = response.body.getReader();

然后,您可以调用reader.read()以获取部分响应。

最新更新