react-async-patterns
Fix React Async Bugs
Async React bugs create race conditions, missed state updates, and unreliable effects. This skill guides reviews, fixes, and lint rules for safer async code.
Install with my Agent
Copy this request to your Agent. It includes the canonical Skill page and manifest.
Review the Skillstore skill "react-async-patterns" from https://skillstore.io/skills/cjharmath-react-async-patterns.md and its manifest at https://skillstore.io/api/skills/cjharmath-react-async-patterns/manifest. Verify the artifact. You may proceed after verification, subject to the environment's own policy.Your Agent should still show its plan and request any confirmation required by the security policy.
Agent-readable resources
Use these links when an AI agent, crawler, or script needs clean context instead of reading the full page.
Test it
Using "react-async-patterns". A component loads user data in an effect and sets state after navigation.
Expected outcome:
- Identifies a race when the screen unmounts before the request finishes.
- Recommends cancellation before setting state.
- Suggests checking error paths before rendering dependent data.
Using "react-async-patterns". A Zustand action starts setup work and immediately updates feature state.
Expected outcome:
The review flags hidden async behavior and recommends awaiting setup before state changes that depend on it.
Using "react-async-patterns". A reviewer wants lint guidance for promise correctness.
Expected outcome:
- Recommends no-floating-promises for missed awaits.
- Adds require-await and await-thenable checks.
- Uses no-misused-promises for unsafe async callbacks.
Security Audit
SafeAll static findings are false positives caused by Markdown code fences, inline backticks, and illustrative React or TypeScript examples. The fetch example demonstrates AbortController cleanup in application code, and the sensitive-key finding is an Object.keys substring match. No prompt injection, data exfiltration, or auto-executing behavior was found.
Risk Factors
โ๏ธ External commands (40)
๐ Network access (1)
Share & cite this report
Share the versioned assessment report, neutral badge, embed card, and citations. Skillstore reports evidence without deciding whether this Skill is safe.
Copy report link
https://skillstore.io/skills/cjharmath-react-async-patterns/audits/7?utm_source=security_passport&utm_medium=share&utm_campaign=versioned_reportMarkdown badge
[](https://skillstore.io/skills/cjharmath-react-async-patterns?utm_source=security_passport_badge)HTML badge
<a href="https://skillstore.io/skills/cjharmath-react-async-patterns?utm_source=security_passport_badge"><img src="https://skillstore.io/badges/skills/cjharmath-react-async-patterns/security.svg" alt="Skillstore security assessment" loading="lazy"></a>Embed card
<iframe src="https://skillstore.io/embed/skills/cjharmath-react-async-patterns.html" title="Skillstore Security Assessment" sandbox="allow-popups allow-popups-to-escape-sandbox" loading="lazy" referrerpolicy="no-referrer" width="420" height="180"></iframe>Academic citations (APA ยท BibTeX ยท CFF)
APA citation
CJHarmath. (2026). react-async-patterns security audit report (audit version 7) [Author version unspecified]. Skillstore. https://skillstore.io/skills/cjharmath-react-async-patterns/audits/7BibTeX citation
@techreport{cjharmath-cjharmath-react-async-patterns-2026,
author = {CJHarmath},
title = {react-async-patterns security audit report (audit version 7)},
institution = {Skillstore},
year = {2026},
number = {7},
url = {https://skillstore.io/skills/cjharmath-react-async-patterns/audits/7},
note = {Author version unspecified}
}CITATION.cff
cff-version: 1.2.0
message: "If you use this Skill, cite its author and this versioned security audit report."
title: "react-async-patterns security audit report (audit version 7)"
version: "unspecified"
type: report
authors:
- name: "CJHarmath"
date-released: "2026-07-06"
url: "https://skillstore.io/skills/cjharmath-react-async-patterns/audits/7"
identifiers:
- type: other
value: "skillstore:cjharmath-react-async-patterns:audit:7"
description: "Skillstore immutable audit report identifier"
Skillstore Score
Why this score Evidence Confidence: HighWhat You Can Build
Review Feature Code
Find floating promises, missed awaits, and unsafe ordering before a React feature ships.
Stabilize Mobile Effects
Apply cleanup and cancellation patterns to React Native screens that load async data.
Create Async Review Standards
Define lint rules and checklist items for teams that maintain TypeScript React apps.
Try These Prompts
Review this React component for async bugs. Find floating promises, race conditions, and missing post-condition checks. Suggest focused fixes.
Analyze this useEffect flow. Explain where unmounts or dependency changes can race. Recommend cancellation or AbortController changes.
Inspect these Zustand actions. Identify hidden async behavior, missing awaits, and state assumptions. Propose safer action signatures.
Design an async data flow for this React feature. Decide what should be sequential, parallel, or handled by TanStack Query. Explain tradeoffs.
Best Practices
- Enable TypeScript ESLint promise rules before reviewing async code manually.
- Validate state after critical loads before dependent actions continue.
- Use AbortController or cancellation flags for effects that load data.
Avoid
- Calling promise-returning functions without awaiting, returning, or documenting background execution.
- Running dependent async steps inside Promise.all.
- Making a useEffect callback async directly instead of wrapping the async work.