这是我参与8月更文挑战的第19天,活动详情查看:8月更文挑战
Promise.resolve()
Promise.resolve(value) 方法返回一个以给定值解析后的Promise 对象。如果这个值是一个 promise ,那么将返回这个 promise ;如果这个值是thenable(即带有"then" 方法),返回的promise会“跟随”这个thenable的对象,采用它的最终状态;否则返回的promise将以此值完成。此函数将类promise对象的多层嵌套展平。
警告:不要在解析为自身的thenable 上调用
Promise.resolve。这将导致无限递归,因为它试图展平无限嵌套的promise。一个例子是将它与Angular中的异步管道一起使用。
语法
Promise.resolve(value);
参数
- value
将被Promise对象解析的参数,也可以是一个Promise对象,或者是一个thenable。
返回值
返回一个带着给定值解析过的Promise对象,如果参数本身就是一个Promise对象,则直接返回这个Promise对象。
描述
静态方法 Promise.resolve返回一个解析过的Promise对象。
示例
Promise.resolve("Success").then(function(value) {
console.log(value); // "Success"
}, function(value) {
// 不会被调用
});
复制代码
resolve一个数组
var p = Promise.resolve([1,2,3]);
p.then(function(v) {
console.log(v[0]); // 1
});
复制代码
resolve另一个promise
var original = Promise.resolve(33);
var cast = Promise.resolve(original);
cast.then(function(value) {
console.log('value: ' + value);
});
console.log('original === cast ? ' + (original === cast));
/*
* 打印顺序如下,这里有一个同步异步先后执行的区别
* original === cast ? true
* value: 33
*/
复制代码
Promise.any()
Promise.any() 接收一个Promise可迭代对象,只要其中的一个 promise 成功,就返回那个已经成功的 promise 。如果可迭代对象中没有一个 promise 成功(即所有的 promises 都失败/拒绝),就返回一个失败的 promise 和AggregateError类型的实例,它是 Error 的一个子类,用于把单一的错误集合在一起。本质上,这个方法和Promise.all()是相反的。
注意! Promise.any() 方法依然是实验性的,尚未被所有的浏览器完全支持。
语法
Promise.any(iterable);
参数
返回值
- 如果传入的参数是一个空的可迭代对象,则返回一个 已失败(already rejected) 状态的 Promise。
- 如果传入的参数不包含任何
promise``,则返回一个 异步完成 (asynchronously resolved)的 Promise。 - 其他情况下都会返回一个处理中(pending) 的 Promise。 只要传入的迭代对象中的任何一个
promise变成成功(resolve)状态,或者其中的所有的promises都失败,那么返回的promise就会 异步地(当调用栈为空时) ****变成成功/失败(resolved/reject)状态。
说明
这个方法用于返回第一个成功的 promise 。只要有一个 promise 成功此方法就会终止,它不会等待其他的 promise 全部完成。
不像 Promise.all() 会返回一组完成值那样(resolved values),我们只能得到一个成功值(假设至少有一个 promise 完成)。当我们只需要一个 promise 成功,而不关心是哪一个成功时此方法很有用的。
同时, 也不像 Promise.race() 总是返回第一个结果值(resolved/reject)那样,这个方法返回的是第一个 成功的 值。这个方法将会忽略掉所有被拒绝的 promise,直到第一个 promise 成功。
成功(Fulfillment):
当任何一个被传入的 promise 成功的时候, 无论其他的 promises 成功还是失败,此函数会将那个成功的 promise 作为返回值 。
- 如果传入的参数是一个空的可迭代对象, 这个方法将会同步返回一个已经完成的
promise。 - 如果传入的任何一个
promise已成功, 或者传入的参数不包括任何promise, 那么Promise.any返回一个异步成功的promise。
失败/拒绝(Rejection)
如果所有传入的 promises 都失败, Promise.any 将返回异步失败,和一个 AggregateError对象,它继承自 Error,有一个 error 属性,属性值是由所有失败值填充的数组。






















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)