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 books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.