Promise.resolve
Promise.resolve(Promise<any>|any value) -> Promise
创建一个用给定值解决(resolve)的 promise。 如果 value
已经是一个可信的 Promise
,将使用这个 value
作为履行值返回一个已履行的 promise。。 如果 value
不是一个可行的,那么一个履行的承诺以“价值”作为履行价值。 如果 value
是一个具有 then 方法的对象(thenable,类似于 Promise 的对象,就像 jQuery 的 .ajax
所返回的对象一样),则返回一个可信的 Promise 来同化这个接口的状态。
如果一个函数返回一个 promise(比如在链中),但是可以选择返回一个静态值,这可能是有用的。假如,对于一个懒加载的值。示例:
var someCachedValue;
var getValue = function() {
if (someCachedValue) {
return Promise.resolve(someCachedValue);
}
return db.queryAsync().then(function(value) {
someCachedValue = value;
return value;
});
};
一个处理 jQuery 可转换对象的例子($
is jQuery):
Promise.resolve($.get("http://www.google.com")).then(function() {
// 从处理程序返回的 thenable 将自动转换为一个可信的 promise
// 就像每个 Promises/A+ 规范一样
return $.post("http://www.yahoo.com");
}).then(function() {
}).catch(function(e) {
//jQuery 不抛出真正的错误,因此使用 catch-all
console.log(e.statusText);
});