# voxtech-byte/practice-asynchronous-javascript architecture

> Architecture diagram of the GitHub repository voxtech-byte/practice-asynchronous-javascript, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/voxtech-byte/practice-asynchronous-javascript
- Repository: https://github.com/voxtech-byte/practice-asynchronous-javascript

## Overview

This repository is a JavaScript learning collection about asynchronous programming, not a deployed application. Its examples progress from callbacks and error handling to Promises, async/await, HTTP requests, parallel work, and event-loop scheduling. The README documents the main teaching topics; sampled files show runnable examples, including HTTP calls and task scheduling. Many examples are independent scripts rather than a connected runtime pipeline, so the graph shows documented topic relationships without implying that one example invokes another.

Main entry points: [`src/callbacks`](https://github.com/voxtech-byte/practice-asynchronous-javascript/tree/master/src/callbacks) (Callback examples), [`src/callbacks/callback-hell.js`](https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/callbacks/callback-hell.js) (Nested callbacks), [`src/promises`](https://github.com/voxtech-byte/practice-asynchronous-javascript/tree/master/src/promises) (Promise basics), [`src/promises/chaining-promises.js`](https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/promises/chaining-promises.js) (Promise chains)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_callback["Callback Patterns"]
  node_callback_examples["Callback examples"]
  node_callback_errors["Callback errors<br/>[error-handling.js]"]
  node_callback_nesting["Nested callbacks<br/>[callback-hell.js]"]
end

subgraph group_promise["Promise Techniques"]
  node_promise_basics["Promise basics"]
  node_promise_chains["Promise chains"]
  node_promise_errors["Promise rejection"]
  node_promise_combinators["Promise combinators"]
  node_promisification["Promisification"]
end

subgraph group_async["Async Workflows"]
  node_async_await["Async await"]
  node_http_examples["HTTP examples"]
  node_execution_examples["Execution patterns"]
end

subgraph group_runtime["Event Loop"]
  node_task_queue["Task queue"]
  node_long_tasks["Long-task handling"]
  node_task_priority["Task priorities"]
end

node_learner(("Learner"))

node_learner -->|"learns callbacks"| node_callback_examples
node_learner -->|"studies nesting"| node_callback_nesting
node_learner -->|"learns Promises"| node_promise_basics
node_learner -->|"studies chaining"| node_promise_chains
node_learner -->|"studies rejection"| node_promise_errors
node_learner -->|"studies conversion"| node_promisification
node_learner -->|"learns async syntax"| node_async_await
node_learner -->|"studies HTTP"| node_http_examples
node_learner -->|"studies priorities"| node_task_priority
node_learner -->|"compares execution"| node_execution_examples

click node_callback_examples "https://github.com/voxtech-byte/practice-asynchronous-javascript/tree/master/src/callbacks"
click node_callback_errors "https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/callbacks/error-handling.js"
click node_callback_nesting "https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/callbacks/callback-hell.js"
click node_promise_basics "https://github.com/voxtech-byte/practice-asynchronous-javascript/tree/master/src/promises"
click node_promise_chains "https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/promises/chaining-promises.js"
click node_promise_errors "https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/promises/handling-promise-rejection.js"
click node_promise_combinators "https://github.com/voxtech-byte/practice-asynchronous-javascript/tree/master/src/promises"
click node_promisification "https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/promises/promisify-any-js-func.js"
click node_async_await "https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/callbacks/async-await-try-catch.js"
click node_http_examples "https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/promises/http-req-fetch-api.js"
click node_execution_examples "https://github.com/voxtech-byte/practice-asynchronous-javascript/tree/master/src/testing-promise-in-js"
click node_task_queue "https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/advanced-version-of-event-loop/a-closser-look-at-the-task-queue.js"
click node_long_tasks "https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/advanced-version-of-event-loop/handling-long-task-1.js"
click node_task_priority "https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/advanced-version-of-event-loop/what-about-task-priority.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_callback_examples,node_callback_errors,node_callback_nesting toneBlue
class node_promise_basics,node_promise_chains,node_promise_errors,node_promise_combinators,node_promisification toneAmber
class node_async_await,node_http_examples,node_execution_examples toneMint
class node_task_queue,node_long_tasks,node_task_priority toneRose
class node_learner toneIndigo
```

## Components

### Callback Patterns

- [Callback examples](https://github.com/voxtech-byte/practice-asynchronous-javascript/tree/master/src/callbacks): `src/callbacks`
- [Callback errors](https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/callbacks/error-handling.js): `src/callbacks/error-handling.js`
- [Nested callbacks](https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/callbacks/callback-hell.js): `src/callbacks/callback-hell.js`

### Promise Techniques

- [Promise basics](https://github.com/voxtech-byte/practice-asynchronous-javascript/tree/master/src/promises): `src/promises`
- [Promise chains](https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/promises/chaining-promises.js): `src/promises/chaining-promises.js`
- [Promise rejection](https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/promises/handling-promise-rejection.js): `src/promises/handling-promise-rejection.js`
- [Promise combinators](https://github.com/voxtech-byte/practice-asynchronous-javascript/tree/master/src/promises): `src/promises`
- [Promisification](https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/promises/promisify-any-js-func.js): `src/promises/promisify-any-js-func.js`

### Async Workflows

- [Async await](https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/callbacks/async-await-try-catch.js): `src/callbacks/async-await-try-catch.js`
- [HTTP examples](https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/promises/http-req-fetch-api.js): `src/promises/http-req-fetch-api.js`
- [Execution patterns](https://github.com/voxtech-byte/practice-asynchronous-javascript/tree/master/src/testing-promise-in-js): `src/testing-promise-in-js`

### Event Loop

- [Task queue](https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/advanced-version-of-event-loop/a-closser-look-at-the-task-queue.js): `src/advanced-version-of-event-loop/a-closser-look-at-the-task-queue.js`
- [Long-task handling](https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/advanced-version-of-event-loop/handling-long-task-1.js): `src/advanced-version-of-event-loop/handling-long-task-1.js`
- [Task priorities](https://github.com/voxtech-byte/practice-asynchronous-javascript/blob/master/src/advanced-version-of-event-loop/what-about-task-priority.js): `src/advanced-version-of-event-loop/what-about-task-priority.js`

### Other components

- **Learner**

## Connections

- Learner → Callback examples: learns callbacks (evidence: `README.md`)
- Learner → Nested callbacks: studies nesting (evidence: `README.md`)
- Learner → Promise basics: learns Promises (evidence: `README.md`)
- Learner → Promise chains: studies chaining (evidence: `README.md`)
- Learner → Promise rejection: studies rejection (evidence: `README.md`)
- Learner → Promisification: studies conversion (evidence: `README.md`)
- Learner → Async await: learns async syntax (evidence: `README.md`)
- Learner → HTTP examples: studies HTTP (evidence: `README.md`)
- Learner → Task priorities: studies priorities (evidence: `README.md`)
- Learner → Execution patterns: compares execution (evidence: `src/testing-promise-in-js/sequential-vs-parallel.js`)
