
React’s next era, AI code review tools, and more: discover what’s new in The Replay, LogRocket’s newsletter for dev and engineering leaders, in the December 3rd issue.

Aurora Scharff discusses React’s async coordination primitives, and how React’s new era signals a fundamental shift in how devs build software.

Explore TanStack DB’s new feature, Query-Driven Sync, and how you can leverage it to build efficient, scalable React applications.

Error boundaries catch only render-time failures, which isn’t enough for modern async UIs. Signals treat errors as reactive state, giving you consistent handling across your app.
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
3 Replies to "New ES2021 features you may have missed"
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.
That was a typo. Should have been promise.any not promise.all. It will be corrected.
“`
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”));
“`