async-operations

Async Operations Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "async-operations" with this command: npx skills add oimiragieo/agent-studio/oimiragieo-agent-studio-async-operations

Async Operations Skill

  • Async Operations

  • Prefer async/await syntax over .then() chains

  • Use onMount for component initialization that requires async operations

Iron Laws

  • ALWAYS use async/await over .then() chains — async/await produces linear, readable code; .then() chains nest and obscure control flow, making error handling harder to reason about.

  • ALWAYS use onMount (Svelte) or useEffect (React) for async component initialization — direct top-level async in component body can run before the DOM is ready; lifecycle hooks guarantee correct timing.

  • NEVER use forEach with async callbacks — array.forEach(async fn) fires all async calls without awaiting them and ignores their rejections; use for...of for sequential or Promise.all(array.map(async fn)) for parallel.

  • ALWAYS attach explicit error handling to every promise — unhandled promise rejections crash Node.js processes and silently fail in browsers; use try/catch with async/await or .catch() with .then() chains.

  • NEVER mix async/await and .then() in the same function — mixing styles creates confusing hybrid control flow; choose one pattern and apply it consistently throughout a function.

Anti-Patterns

Anti-Pattern Why It Fails Correct Approach

array.forEach(async fn)

Async callbacks are fire-and-forget; rejections are unhandled Use for...of (sequential) or Promise.all(arr.map(...)) (parallel)

Unhandled promise rejections Crashes Node.js; silently fails in browser Always wrap in try/catch or add .catch()

Mixing .then() and await

Confusing hybrid control flow; error scope unclear Use one style consistently per function

Top-level async in component body Runs before DOM is ready; race conditions Use lifecycle hooks (onMount , useEffect )

.then() chains 3+ levels deep Callback pyramid; hard to debug Convert to async/await for linear readability

Memory Protocol (MANDATORY)

Before starting:

cat .claude/context/memory/learnings.md

After completing: Record any new patterns or exceptions discovered.

ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

filesystem

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

slack-notifications

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

chrome-browser

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

diagram-generator

No summary provided by upstream source.

Repository SourceNeeds Review