The traditional way to create a promise is using the ๐๐ซ๐จ๐ฆ๐ข๐ฌ๐ constructor.
There is a new feature in JavaScript called ๐๐ซ๐จ๐ฆ๐ข๐ฌ๐.๐ฐ๐ข๐ญ๐ก๐๐๐ฌ๐จ๐ฅ๐ฏ๐๐ซ๐ฌ.
Promise.withResolvers is a function that returns an object with two properties: a promise and a set of resolve and reject functions. This allows us to create a promise and manage its resolution or rejection in a more streamlined way.
In the example below, we use Promise.withResolvers creates an object with a promise and two functions resolve and reject. The asynchronous operation is simulated using setTimeout, and the appropriate function (resolve or reject) is called based on the outcome.
// Promise.withResolvers()
const { promise, resolve, reject } = Promise.withResolvers();
// Perform some async operation
setTimeout(() => {
resolve('Data fetched successfully!');
}, 1000);
promise
.then((data) => {
alert(data); // Output: 'Data fetched successfully!'
})
.catch((error) => {
alert(error);
});
I hope you found it useful. Thanks for reading. ๐
Let's get connected! You can find me on:
- Medium: https://medium.com/@nhannguyendevjs/
- Dev: https://dev.to/nhannguyendevjs/
- Hashnode: https://nhannguyen.hashnode.dev/
- Linkedin: https://www.linkedin.com/in/nhannguyendevjs/
- X (formerly Twitter): https://twitter.com/nhannguyendevjs/
- Buy Me a Coffee: https://www.buymeacoffee.com/nhannguyendevjs
Top comments (2)
That's a really neat helper. I often find myself implementing basically the same thing (although I usually just end up putting the
accept
andreject
functions in the promise so I can call them as methods).Thank you :-)