mirror of
https://github.com/kjanat/livedash-node.git
synced 2026-02-13 21:15:45 +01:00
- Fix syntax errors in skills markdown files (.github/skills, .opencode/skills) - Change typescript to tsx for code blocks with JSX - Replace ellipsis (...) in array examples with valid syntax - Separate CSS from TypeScript into distinct code blocks - Convert JavaScript object examples to valid JSON in docs - Fix enum definitions with proper comma separation
38 lines
956 B
Markdown
38 lines
956 B
Markdown
---
|
||
title: Dependency-Based Parallelization
|
||
impact: CRITICAL
|
||
impactDescription: 2-10× improvement
|
||
tags: async, parallelization, dependencies, better-all
|
||
---
|
||
|
||
## Dependency-Based Parallelization
|
||
|
||
For operations with partial dependencies, use `better-all` to maximize parallelism. It automatically starts each task at the earliest possible moment.
|
||
|
||
**Incorrect (profile waits for config unnecessarily):**
|
||
|
||
```typescript
|
||
const [user, config] = await Promise.all([fetchUser(), fetchConfig()]);
|
||
const profile = await fetchProfile(user.id);
|
||
```
|
||
|
||
**Correct (config and profile run in parallel):**
|
||
|
||
```typescript
|
||
import { all } from "better-all";
|
||
|
||
const { user, config, profile } = await all({
|
||
async user() {
|
||
return fetchUser();
|
||
},
|
||
async config() {
|
||
return fetchConfig();
|
||
},
|
||
async profile() {
|
||
return fetchProfile((await this.$.user).id);
|
||
},
|
||
});
|
||
```
|
||
|
||
Reference: [https://github.com/shuding/better-all](https://github.com/shuding/better-all)
|