Asynchronous programming
Dart is a single-threaded programming language, meaning that all of the application code runs in the same thread. Put simply, this means that any code may block thread execution by performing long-running operations such as input/output (I/O) or HyperText Transfer Protocol (HTTP) requests. This can be an issue if your app is stuck waiting for something slow such as an HTTP request while the user is trying to interact with it. The app would effectively freeze and not respond to the user’s input.
However, although Dart is single-threaded, it can perform asynchronous operations through the use of Futures. This allows your code to trigger an operation, continue doing other work, and then come back when the operation has been completed. To represent the result of these asynchronous operations, Dart uses the Future
object combined with the async
and await
keywords. Let’s look at these concepts now so that we can learn how to write a responsive application...