Error Image
当我试图加载两个以上的数据与悬念(流)发生上述错误。我使用的是Next JS 13.4和App Router。
export const serverApi = async <T>(
url: string,
init?: RequestInit
): Promise<T> => {
const response = await fetch(BASE_URL.API + url, init);
if (!response.ok) {
throw new Error(response.statusText);
}
return await (response.json() as Promise<T>);
};
export const getArticles = async () => {
return await serverApi<Article[]>(API.ARTICLES, {
cache: "no-store",
});
};
export const getArticle = async (id: string) => {
return await serverApi<Article>(API.ARTICLE_WITH_ID(id), {
cache: "no-store",
});
};
const Header = async () => {
return (
<header className="relative w-full flex items-center justify-center">
<div />
<HeaderNavigation />
<Suspense fallback={<HeaderProfileSpinner />}>
{/* @ts-ignore */}
<HeaderProfile />
</Suspense>
</header>
);
};
const HeaderProfile = async () => {
const cookie = getCookie();
const queryClient = getQueryClient();
await queryClient.prefetchQuery(USER_QUERY_KEYS.me(), () =>
getUserMe(cookie)
);
const dehydratedState = dehydrate(queryClient);
return (
<Hydrate state={dehydratedState}>
<HeaderProfileImage />
</Hydrate>
);
};
我是这样使用API的。我使用页面路由器的API。有关更多细节,我使用Prisma用于ORM,Postgres(Supplement)用于DB,并使用Vercel部署。我认为“连接关闭”意味着服务器在其中一个流解决时中止连接,这不像我预期的那样。我认为流媒体的全部意义在于并行渲染多个内容,但它不起作用。这是有点奇怪的错误不发生在localhost。
2条答案
按热度按时间lvmkulzt1#
与流媒体没有直接关系,但任何人处理这个连接关闭错误,我的网站工作正常,直到随机它会崩溃后5-10秒,这个错误以及。它在我的本地环境中工作得很好,但我在Vercel上部署的站点却不行。
我尝试了很多东西,没有任何工作,直到我简单地将我的下一个从v13.3升级到v13.4.12,它解决了这个问题。如果你正在处理同样的问题,我建议你先尝试从当前版本升级/降级,看看是否有效。
jfewjypa2#
这个答案不是关于
Suspense
的,但我遇到了这个错误,并通过升级Next到latest解决了这个问题。在我的橱窗里,我也看到了这个:
也许这将有助于未来的人。
或