Promise.resolve(Promise<any>|any value) -> Promise
Create a promise that is resolved with the given value. If value
is already a trusted Promise
, it is returned as is. If value
is not a thenable, a fulfilled Promise is returned with value
as its fulfillment value. If value
is a thenable (Promise-like object, like those returned by jQuery's $.ajax
), returns a trusted Promise that assimilates the state of the thenable.
This can be useful if a function returns a promise (say into a chain) but can optionally return a static value. Say, for a lazy-loaded value. Example:
var someCachedValue; var getValue = function() { if (someCachedValue) { return Promise.resolve(someCachedValue); } return db.queryAsync().then(function(value) { someCachedValue = value; return value; }); };
Another example with handling jQuery castable objects ($
is jQuery)
Promise.resolve($.get("http://www.google.com")).then(function() { //Returning a thenable from a handler is automatically //cast to a trusted Promise as per Promises/A+ specification return $.post("http://www.yahoo.com"); }).then(function() { }).catch(function(e) { //jQuery doesn't throw real errors so use catch-all console.log(e.statusText); });
© 2013–2017 Petka Antonov
Licensed under the MIT License.
http://bluebirdjs.com/docs/api/promise.resolve.html