@naturalcycles/js-lib
Version:
Standard library for universal (browser + Node.js) javascript
15 lines (14 loc) • 444 B
JavaScript
const UNIQUE_VALUE = Symbol('unique');
/**
* Returns the state of the Promise, one of:
* - pending
* - resolved
* - rejected
*
* Based on: https://makandracards.com/makandra/46681-javascript-how-to-query-the-state-of-a-native-promise
*/
export async function pState(p) {
return await Promise.race([p, Promise.resolve(UNIQUE_VALUE)]).then(v => {
return v === UNIQUE_VALUE ? 'pending' : 'resolved';
}, () => 'rejected');
}