[ PROMPT_NODE_27912 ]
async-api-routes
[ SKILL_DOCUMENTATION ]
## 防止 API 路由中的瀑布流链
在 API 路由和 Server Actions 中,应立即启动独立的操作,即使你还没有 await 它们。
**错误示例(配置等待认证,数据等待两者):**
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 })
}
**正确示例(认证和配置立即启动):**
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 })
}
对于具有更复杂依赖链的操作,请使用 `better-all` 来自动最大化并行处理(请参阅“基于依赖的并行化”)。