How do you check an object is a promise or not

How do you check an object is a promise or not

·

2 min read

If you don't know if a value is a promise or not, wrapping the value as Promise.resolve(value) which returns a promise

//javascript
         function isPromise(object){
            if(Promise && Promise.resolve){
            return Promise.resolve(object) == object;
            }else{
            throw "Promise not supported in your environment"
            }
         }

         var i = 1;
         var promise = new Promise(function(resolve,reject){
            resolve()
         });

         console.log(isPromise(i)); // false
         console.log(isPromise(p)); // true

Another way is to check for .then() handler type

//javascript
      function isPromise(value) {
         return Boolean(value && typeof value.then === 'function');
      }
      var i = 1;
      var promise = new Promise(function(resolve,reject){
         resolve()
      });

      console.log(isPromise(i)) // false
      console.log(isPromise(promise)); // true