I'm new to Promises and I'm trying to understand the Promise constructor. According to promisejs.org, something which is maybe a promise can be resolved using Promise.resolve
, e.g.
var maybePromise = Math.random() > 0.5 ? 10 : Promise.resolve(10);
var definitelyPromise = Promise.resolve(maybePromise);
Promise.resolve
is equivalent to (case1):
var definitelyPromise = new Promise(function (fulfill, reject) {
if (isPromise(maybePromise)) {
maybePromise.then(fulfill, reject);
} else {
fulfill(maybePromise);
}
});
I wonder if this is also equivalent to (case2):
var definitelyPromise3 = new Promise(function(fulfill, reject) {
if (maybePromise instanceof Promise) {
fulfill(maybePromise);
} else {
fulfill(maybePromise);
}
});
(Of course the if...else...
can be removed, because I call fulfill(maybePromise)
in both cases).
Here's a jsfiddle