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 ensure your expert C# knowledge doesn’t make you a TypeScript noob

Coming from C# can quietly sabotage your TypeScript code. This article shows how to swap nullable flags and enums for discriminated unions and literal types so your Angular apps model state cleanly and stay easy to reason about.

Lewis Cianci
Nov 25, 2025 ⋅ 3 min read
How To Scale CSS In Micro Frontends (Without Losing Your Mind)

How to scale CSS in micro frontends (without losing your mind)

Micro frontends boost autonomy but they make CSS a nightmare. In this guide, I break down how to scale styling without collisions using design tokens, CSS Modules, and the Shadow DOM.

Elijah Asaolu
Nov 24, 2025 ⋅ 6 min read
chatgpt atlas for developers featured image

How to use ChatGPT Atlas for frontend debugging, testing, and more

Learn how ChatGPT’s new browser Atlas fits into a frontend developer’s toolkit, including the debugging and testing process.

Emmanuel John
Nov 20, 2025 ⋅ 10 min read

Why composition – not reactivity – leads UI’s future

Users don’t think in terms of frontend or backend; they just see features. This article explores why composition, not reactivity, is becoming the core organizing idea in modern UI architecture.

Oscar Jite-Orimiono
Nov 20, 2025 ⋅ 6 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

Hey there, want to help make our blog better?

Join LogRocket’s Content Advisory Board. You’ll help inform the type of content we create and get access to exclusive meetups, social accreditation, and swag.

Sign up now