2018-11-14
1167
Alberto Gimeno
230
Nov 14, 2018 ⋅ 4 min read

Promise chaining is dead. Long live async/await

Alberto Gimeno Ecosystem Engineer at GitHub. Sometimes I write about JavaScript, Node.js, and frontend development.

Recent posts:

how to properly handle rejected promises in TypeScript

How to properly handle rejected promises in TypeScript

Learn how to properly handle rejected promises in TypeScript using Angular, with tips for retry logic, typed results, and avoiding unhandled exceptions.

Lewis Cianci
Jun 26, 2025 ⋅ 4 min read
Your AI Has Agency — Here’s How To Architect Its Frontend

Your AI has agency — here’s how to architect its frontend

AI’s not just following orders anymore. If you’re building the frontend, here’s how to design interfaces that actually understand your agent’s smarts.

Rosario De Chiara
Jun 25, 2025 ⋅ 5 min read
how to design apps with Apple Intelligence in mind

How to design apps with Apple Intelligence in mind

Apple Intelligence is here. What does it mean for frontend dev and UX? Explore the core features of the update, do’s and don’ts for designing with Apple Intelligence in mind, and reflect on the future of AI design.

Murat Yüksel
Jun 24, 2025 ⋅ 10 min read
How To Optimize Your Next.js App With After()

How to optimize your Next.js app with after()

Next.js’ after() is a new API that lets you run logic after your route has finished rendering, without blocking the client.

Temitope Oyedele
Jun 24, 2025 ⋅ 11 min read
View all posts

4 Replies to "Promise chaining is dead. Long live async/await"

  1. awaits are actually converted back to yields, which in turn are converted to closures…so the garbage collector argument does not hold. Otherwise, great post, thanks!

  2. Nice article. But, if you have to replace Promise.all with an external library.. then Promise.all is not dead.

  3. How do we do this level of asynchronous task in await?:

    const result = await Promise.all([
    independentTask,
    taskA.then(resultA => {
    return dependentOnTaskA(resultA)
    })
    ])

    The point is that independentTask is one work flow, and task->dependentOnTaskA is another workflow. And hence, neither should be waiting on either.

Leave a Reply