stream disconnected before completion: stream closed before response.completed
错误信息
stream disconnected before completion: stream closed before response.completed
AI 解决方案
原文:stream disconnected before completion: stream closed before response.completed
译文:流在完成之前断开连接:在响应完成前流已关闭
🎯 原因分析
此错误表示在流式传输过程中,客户端与服务端的连接在响应未完全完成时被意外终止。常见原因包括:
💡 解决方案
检查流式响应的处理逻辑,确保正确处理异常并实现重试机制:
// 修复后的代码示例
async function streamRequest(url) {
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort(), 30000); // 30秒超时
try {
const response = await fetch(url, {
signal: controller.signal,
headers: {
'Accept': 'text/event-stream'
}
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const reader = response.body.getReader();
const decoder = new TextDecoder();
let buffer = '';
while (true) {
const { done, value } = await reader.read();
if (done) break;
buffer += decoder.decode(value, { stream: true });
// 处理接收到的数据...
}
clearTimeout(timeoutId);
} catching (error) {
if (error.name === 'AbortError') {
// 处理超时逻辑
} else {
// 处理网络错误
}
clearTimeout(timeoutId);
// 重试逻辑
}
}