TSX
Public
Parallel Data Fetching in a Server Component
Start independent server requests together to reduce total rendering time.
#nextjs
#server-components
#async
#performance
TSX
// app/dashboard/page.tsx
async function getUser() {
return db.user.findFirst();
}
async function getRecentOrders() {
return db.order.findMany({
orderBy: {
createdAt: 'desc',
},
take: 5,
});
}
export default async function DashboardPage() {
const userPromise = getUser();
const ordersPromise = getRecentOrders();
const [user, orders] = await Promise.all([
userPromise,
ordersPromise,
]);
return (
<main>
<h1>Welcome, {user?.name ?? 'Guest'}</h1>
<ul>
{orders.map((order) => (
<li key={order.id}>
Order {order.id}
</li>
))}
</ul>
</main>
);
}