Asynchronous patterns

When we are writing JavaScript with network or file system I/O, there is a 95% chance that we are doing it asynchronously. However, an asynchronous code may tremendously decrease the determinability at the dimension of time. But we are so lucky that JavaScript is usually single-threaded; this makes it possible for us to write predictable code without mechanisms such as locks most of the time.

Writing predictable code

The predictable code relies on predictable tools (if you are using any). Consider a helper like this:

type Callback = () => void; let isReady = false; let callbacks: Callback[] = []; setTimeout(() => { callbacks.forEach(callback => callback()); callbacks = undefined; }, 100); export function ready(callback: Callback): ...

Get TypeScript Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.