loading...

Discussion on: Elegant way to check if a Promise is pending

Collapse
somedood profile image
Basti Ortiz (Some Dood)

I mean this is cool and all, but I'm not really sure when one would ever want to know when a promise is "pending".

It's a fun experiment for the sake of learning, but usually, one would be better off just waiting until the Promise#then handler is fired.

However, if it is indeed "necessary" to do so (though I highly doubt that there is no better approach), you can use the Promise#then handler to achieve it more "elegantly" and concisely without the use of Node's meta tools.

let isPending = true;
Promise.resolve(1)
  .then(() => { isPending = false; });
Collapse
devcrafter91 profile image
Mak 🇪🇺 Author

If you're dealing with a scenario where you have a lot of promises and you wanted to just check the state for reporting or something, you must then define a bunch of variables for every promise which is ugly imho.

Collapse
somedood profile image
Basti Ortiz (Some Dood)

In that case, assuming a Node environment as in your example in the article, wouldn't it be better (and more readable) to implement an event emitter instead?

It seems to me that promises may be the wrong abstraction for the job.