promise.js 541 B

12345678910111213141516
  1. let getPromiseValue = () => 'Promise{…}'
  2. try {
  3. const { getPromiseDetails, kPending, kRejected } = process.binding('util')
  4. if (Array.isArray(getPromiseDetails(Promise.resolve()))) {
  5. getPromiseValue = (value, options) => {
  6. const [state, innerValue] = getPromiseDetails(value)
  7. if (state === kPending) {
  8. return 'Promise{<pending>}'
  9. }
  10. return `Promise${state === kRejected ? '!' : ''}{${options.inspect(innerValue, options)}}`
  11. }
  12. }
  13. } catch (notNode) {
  14. /* ignore */
  15. }
  16. export default getPromiseValue