Promise
和Promise.all
是 JavaScript 中的异步操作处理对象和方法。以下是它们的基本用法:
-
Promise
Promise
是一种用于处理异步操作的对象。它表示一个异步操作的结果将会在未来某个时间点完成或失败。创建
Promise
对象有两种方式:使用Promise
构造函数或使用Promise.resolve
方法。使用
Promise
构造函数:
javascript
const promise = new Promise((resolve, reject) => {
// 异步操作
setTimeout(() => {
if (Math.random() > 0.5) {
resolve('操作成功');
} else {
reject('操作失败');
}
}, 1000);
});
在这个示例中,使用Promise
构造函数创建了一个Promise
对象。在then
方法中,通过resolve
回调函数来处理操作成功的情况,通过reject
回调函数来处理操作失败的情况。
使用Promise.resolve
方法:
javascript
const promise = Promise.resolve('操作成功');
Promise.resolve
方法接受一个值作为参数,并返回一个已经成功的Promise
对象。
使用Promise
对象:
javascript
promise.then(result => {
console.log(result);
}).catch(error => {
console.error(error);
});
通过then
方法可以添加成功回调函数,通过catch
方法可以添加失败回调函数。
-
Promise.all
Promise.all
方法用于同时处理多个Promise
对象,并在所有Promise
对象都完成时返回一个Promise
对象。Promise.all
方法接受一个数组作为参数,数组中的每个元素都是一个Promise
对象。以下是一个示例:
javascript
const promises = [Promise.resolve('操作 1 成功'), Promise.resolve('操作 2 成功'), Promise.reject('操作 3 失败')];
Promise.all(promises).then(results => {
console.log(results);
}).catch(error => {
console.error(error);
});
在这个示例中,使用Promise.all
方法同时处理了三个Promise
对象。其中一个Promise
对象失败,会导致Promise.all
方法返回的Promise
对象失败,并执行catch
回调函数。
这是Promise
和Promise.all
的基本用法。你可以根据实际需求创建和使用Promise
对象,以及使用Promise.all
方法来处理多个异步操作。