perf: parallelize multi-output asset resolution in useUngroupedAssets

Fire all cachedResolve requests concurrently before awaiting results,
reducing N×latency to ~1×latency via useCachedRequest deduplication.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jin Yi
2026-02-24 14:43:18 +09:00
parent 56905c75ab
commit 9900c2978c

View File

@@ -31,9 +31,19 @@ export function useUngroupedAssets(
onCancel(() => cancel())
const entries = assets.value.map((asset) => ({
asset,
metadata: getOutputAssetMetadata(asset.user_metadata)
}))
for (const { metadata } of entries) {
if ((metadata?.outputCount ?? 1) > 1 && metadata?.jobId) {
void cachedResolve(metadata.jobId)
}
}
const result: AssetItem[] = []
for (const asset of assets.value) {
const metadata = getOutputAssetMetadata(asset.user_metadata)
for (const { asset, metadata } of entries) {
const count = metadata?.outputCount ?? 1
if (count <= 1 || !metadata?.jobId) {
result.push(asset)