在 JavaScript 中,Promise 是用来处理异步操作的一种方式,它代表了一个异步操作的最终完成或失败及其结果值。Promise 是一个构造函数,它接受一个带有 resolve 和 reject 两个参数的回调函数作为参数。下面是 Promise 的详细使用方法:
1.创建一个 Promise 对象:
const myPromise = new Promise((resolve, reject) => {// 异步操作setTimeout(() => {const success = true;if(success) {resolve('Operation was successful');} else {reject('Operation failed');}}, 2000);
});
2.处理 Promise 的完成和失败状态:
myPromise.then(result => {console.log(result); // 输出:Operation was successful
}).catch(error => {console.error(error); // 输出:Operation failed
});
//Promise 链式调用:可以通过将多个 .then() 方法串联在一起,形成一个 Promise 链。
const getData = new Promise((resolve, reject) => {resolve(42);
});getData.then(data => {return data + 1;
}).then(newData => {console.log(newData); // 输出:43
});
3.使用 Promise.all() 处理多个异步操作并行执行:
const promise1 = new Promise(resolve => setTimeout(resolve, 1000, 'One'));
const promise2 = new Promise(resolve => setTimeout(resolve, 2000, 'Two'));Promise.all([promise1, promise2]).then(values => {console.log(values); // 输出:['One', 'Two']});
4.使用 Promise.race() 处理多个异步操作按顺序执行:
const fastPromise = new Promise(resolve => setTimeout(resolve, 1000, 'Fast'));
const slowPromise = new Promise(resolve => setTimeout(resolve, 2000, 'Slow'));Promise.race([fastPromise, slowPromise]).then(value => {console.log(value); // 输出:Fast});