UsefulLinks
Computer Science
Programming
By Language
Dart Programming Language
1. Introduction to Dart
2. Dart Language Fundamentals
3. Functions
4. Object-Oriented Programming (OOP) in Dart
5. Collections
6. Asynchronous Programming
7. Error Handling and Exceptions
8. Dart Tooling and Ecosystem
9. Advanced Topics
6.
Asynchronous Programming
6.1.
Concurrency in Dart
6.1.1.
Single-Threaded Model
6.1.2.
The Event Loop
6.1.2.1.
Event Queue
6.1.2.2.
Microtask Queue
6.1.2.3.
Task Scheduling
6.1.3.
Non-Blocking Operations
6.2.
Futures
6.2.1.
Understanding `Future` Objects
6.2.2.
Creating Futures
6.2.2.1.
`Future.value`
6.2.2.2.
`Future.error`
6.2.2.3.
`Future.delayed`
6.2.2.4.
`Completer` Class
6.2.3.
Future States
6.2.3.1.
Uncompleted
6.2.3.2.
Completed with Value
6.2.3.3.
Completed with Error
6.2.4.
Handling Futures with `.then()`
6.2.5.
Handling Errors with `.catchError()`
6.2.6.
The `.whenComplete()` Method
6.2.7.
Chaining Futures
6.2.8.
Future Combinators
6.2.8.1.
`Future.wait`
6.2.8.2.
`Future.any`
6.3.
`async` and `await`
6.3.1.
Defining `async` Functions
6.3.2.
Using `await` to Get Future Results
6.3.3.
Error Handling with `try-catch` in `async` Functions
6.3.4.
Returning Values from `async` Functions
6.3.5.
Sequential vs Parallel Execution
6.3.6.
Best Practices
6.4.
Streams
6.4.1.
Concept of Streams
6.4.2.
Stream Types
6.4.2.1.
Single-Subscription Streams
6.4.2.2.
Broadcast Streams
6.4.3.
Subscribing to a Stream (`listen`)
6.4.4.
Stream Events
6.4.4.1.
Data Events
6.4.4.2.
Error Events
6.4.4.3.
Done Events
6.4.5.
Creating Streams
6.4.5.1.
`StreamController`
6.4.5.2.
`Stream.fromIterable`
6.4.5.3.
`Stream.periodic`
6.4.6.
Generating Streams with `async*` and `yield`
6.4.7.
Consuming Streams with `await for`
6.4.8.
Stream Transformation and Manipulation
6.4.8.1.
`map`
6.4.8.2.
`where`
6.4.8.3.
`expand`
6.4.8.4.
`take`
6.4.8.5.
`skip`
6.4.9.
Stream Subscription Management
6.4.10.
Backpressure Handling
6.5.
Isolates
6.5.1.
Concept of Isolates
6.5.2.
True Parallelism in Dart
6.5.3.
Spawning an Isolate
6.5.3.1.
`Isolate.spawn`
6.5.3.2.
`compute` Function
6.5.4.
Communication Between Isolates
6.5.4.1.
Send Ports
6.5.4.2.
Receive Ports
6.5.4.3.
Message Passing
6.5.5.
Isolate Lifecycle
6.5.6.
Use Cases for Isolates
6.5.6.1.
CPU-Intensive Tasks
6.5.6.2.
Background Processing
6.5.7.
Isolate Groups
Previous
5. Collections
Go to top
Next
7. Error Handling and Exceptions