FrontendDeveloper.in

JavaScript question detail

How do you check an object is a promise or not

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

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(promise)); // true

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

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
Back to all JavaScript questions
Get LinkedIn Premium at Rs 399