2021-03-26
1232
#vanilla javascript
Linda Ikechukwu
39897
Mar 26, 2021 â‹… 4 min read

New ES2021 features you may have missed

Linda Ikechukwu Frontend developer. Writer. Community Strategist. Building web interfaces that connect products to their target users.

Recent posts:

tanstack table react table

A complete guide to TanStack Table (formerly React Table)

Discover how to use TanStack Table, formerly known as React Table, to build a table UI for a variety of use cases.

Paramanantham Harrison
Mar 28, 2025 â‹… 14 min read
javascript object prototypes

JavaScript prototypes: How objects inherit properties and methods

Explore what prototypes are, how the prototype chain works, and how to use the prototype chain to create inheritance between objects.

Ibadehin Mojeed
Mar 28, 2025 â‹… 7 min read
set up Node.js with TypeScript and Express

How to set up TypeScript with Node.js and Express

Set up TypeScript with Node.js and Express, focusing on configuring key elements for a smooth development experience.

Aman Mittal
Mar 28, 2025 â‹… 9 min read
featured image tsx extension

What is the difference between a .ts and .tsx file extension?

Examine the differences between the .ts and .tsx file types, their use cases, and best practices for a React TypeScript project.

Hussain Arif
Mar 27, 2025 â‹… 8 min read
View all posts

3 Replies to "New ES2021 features you may have missed"

  1. Hi, thanks for writing this good article, I love it.

    However I want to propose a correction for Promise.all in Promise.any part, The Promise.all should be reject if any of the promise rejected and resolve if all promise resolved.

    https://developer.mozilla.org/en-
    US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

    Keep writing good stuff.

  2. “`
    const promise1 = new Promise((resolve) => setTimeout((resolve) => resolve, 300, ‘faster’);
    const promise2 = new Promise((reject) => setTimeout( (reject) =>reject, 100,”fastest”)
    const promise3 = new Promise((resolve) => setTimeout( (resolve) => resolve,700,’fast’);
    “`

    This promise code is just completely wrong, even if you fix the missing closing brackets. Your `setTimeout` calls take a `resolve => resolve` callback, but this reject is not the one from the promise, it’s an internal parameter of the callback. You might as well have passed the callback `foo => foo` , and it will have the same result.

    `promise2` even renames the “resolve” parameter as `reject`. Further adding to the wrongness.

    I believe you meant:

    “`
    const promise2 = new Promise((_, reject) => setTimeout(reject, 100,”fastest”));
    “`

Leave a Reply