在项目中,发起请求后点击中断请求按钮,关闭请求连接,例如在AiChat页面,中断消息回答
方法1:创建AbortController(),调用abort方法
api.ts中
export function addDocQuestion(params: IAddPairQuestion, signal?: AbortSignal) { return request({ url: `/qa/addDocQuestion`, method: "post", data: JSON.stringify(params), headers: { "Content-Type": "application/json" }, signal }); }
页面中
// 发起请求 const handleSearchDocs = (params: IForm) => { abortController.value = new AbortController(); addDocQuestion(params, abortController?.value?.signal) .then((res: any) => { streamAIResponse(res.data.question).then((r) => { addSuccessMessage(res.data.question, params.qaMode); }); }) .catch((err: any) => { addErrorMessage(err.toString(), params.qaMode); }); }; // 中断请求 const stopAnswering = () => { if (abortController.value) { abortController.value.abort(); } };
方法2.使用 CancelToken.source 工厂方法创建 cancel token
参考axios官网,http://www.axios-js.com/zh-cn/docs/index.html#%E5%8F%96%E6%B6%88
浙公网安备 33010602011771号