AgentSkillsCN

async_api_routes

从Vercel导入技能:async_api_routes

SKILL.md
--- frontmatter
description: Imported skill async_api_routes from vercel
name: async_api_routes
signature: 523338540d73427dc14c0cbb19f2741ebccdf8b105a7b2c1b33d2905cf237a42
source: /a0/tmp/skills_research/vercel/skills/react-best-practices/rules/async-api-routes.md

title: Prevent Waterfall Chains in API Routes impact: CRITICAL impactDescription: 2-10× improvement tags: api-routes, server-actions, waterfalls, parallelization

Prevent Waterfall Chains in API Routes

In API routes and Server Actions, start independent operations immediately, even if you don't await them yet.

Incorrect (config waits for auth, data waits for both):

typescript
export async function GET(request: Request) {
  const session = await auth()
  const config = await fetchConfig()
  const data = await fetchData(session.user.id)
  return Response.json({ data, config })
}

Correct (auth and config start immediately):

typescript
export async function GET(request: Request) {
  const sessionPromise = auth()
  const configPromise = fetchConfig()
  const session = await sessionPromise
  const [config, data] = await Promise.all([
    configPromise,
    fetchData(session.user.id)
  ])
  return Response.json({ data, config })
}

For operations with more complex dependency chains, use better-all to automatically maximize parallelism (see Dependency-Based Parallelization).