【ES6】Promise常用的方法

JavaScript中的Promise对象常用于处理异步操作,它具有以下常用的方法:

1、Promise.resolve(value):返回一个已解析的Promise对象。如果value是一个thenable对象(即具有then方法的对象),返回的Promise将"顺从"该对象,即调用该对象的then方法。
let promise = Promise.resolve(42);

promise.then(x => console.log(x)); // 输出 42
2、Promise.reject(reason):返回一个被拒绝的Promise对象。reason是拒绝的原因,通常是一个错误对象。
let promise = Promise.reject(new Error('错误'));

promise.catch(err => console.log(err)); // 输出 错误
3、Promise.all(iterable):返回一个新的Promise对象,当iterable中的所有Promise都已解析或被拒绝时,新返回的Promise对象才会解析或被拒绝。iterable是一个Promise对象或可迭代对象。
let promise1 = Promise.resolve(1);
let promise2 = Promise.resolve(2);
let promise3 = Promise.reject(new Error('错误'));
let promises = [promise1, promise2, promise3];

Promise.all(promises).then((values) => console.log(values)); // 输出 [1, 2, Error: 错误]
4、Promise.race(iterable):返回一个新的Promise对象,当iterable中的任何一个Promise最先解析或被拒绝时,新返回的Promise对象就会立即解析或被拒绝。
let promise1 = new Promise((resolve, reject) => {
    
    
  setTimeout(() => resolve(1), 1000);
});
let promise2 = new Promise((resolve, reject) => {
    
    
  setTimeout(() => resolve(2), 2000);
});
let promises = [promise1, promise2];

Promise.race(promises).then(x => console.log(x)); // 输出 1(因为第一个Promise先解析)

猜你喜欢

转载自blog.csdn.net/qq_22744093/article/details/132604715