Loopback 4:如何中止请求

问题描述 投票:0回答:0

所以我有一个很长的流媒体请求......在客户端,我正在使用 fetch 和这样提供的信号:

controller = new AbortController();
const signal = controller.signal;
  signal.addEventListener("abort", () => {
  console.log("ABORTED");
});

const response = await fetch(`.../stream`, {
  method: "POST",
  signal,
  headers: {
    "Content-Type": "application/json",
     Authorization: `Bearer ${authStore.user.token}`,
  },
  body: JSON.stringify(request),
});

在后端,在环回中,我有一个控制器并注入这样的请求...监听中止或关闭事件,但它永远不会停止...

@post('.../stream', ...)
async createStream(@requestBody(...), @inject(RestBindings.Http.REQUEST) request: Request) {

  request.on('close', () => {
    console.log('Request closed during processing');
  });
      
  request.on('abort', () => {
    console.log('Request closed during processing');
  });
  

  // some logic
  ...
}

因此,当我从客户端执行 FETCH 流时,我正在获取数据,当我执行 controller.abort() 时,实际上什么也没有发生。请求没有开始生成...我在服务器端的控制台中没有得到任何日志,也没有得到我在客户端没有得到“ABORTEED”...

我做错了什么?

api rest fetch loopback
© www.soinside.com 2019 - 2024. All rights reserved.