所以我有一个很长的流媒体请求......在客户端,我正在使用 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”...
我做错了什么?