在JavaScript异步编程中,Promise 是处理异步操作的核心工具。本文将用通俗的语言和示例代码,帮助你快速掌握其核心用法。
一、Promise是什么?
Promise是一个表示异步操作最终完成或失败的对象。它有三种状态:
二、基本用法
1. 创建Promise
``javascript
const myPromise = new Promise((resolve, reject) => {
// 异步操作(如请求API、读取文件)
if (操作成功) {
resolve("成功结果"); // 触发.then
} else {
reject("失败原因"); // 触发.catch
});
`
2. 调用Promise
`javascript
myPromise
.then(result => {
console.log("成功:", result); // 接收resolve的值
})
.catch(error => {
console.log("失败:", error); // 接收reject的值
});
`
三、链式调用(Chaining)
通过.then串联多个异步操作:
`javascript
fetchData
.then(data => processData(data)) // 第一步处理
.then(finalResult => saveResult(finalResult)) // 第二步处理
.catch(error => console.log("链中任意一步出错都会跳转至此"));
`
四、错误处理
捕获。即可统一处理。`javascript

myPromise
.then(result => { /.../ })
.catch(error => { /.../ })
.finally( => { console.log("操作结束"); });
`
五、并行处理多个Promise
1.Promise.all
所有操作成功才会继续:
`javascript
Promise.all([promise1, promise2, promise3])
.then(results => {
// results是一个数组,包含所有Promise的结果
});
`
2.Promise.race
第一个完成(无论成功或失败)的Promise触发:
`javascript
Promise.race([promiseA, promiseB])
.then(firstResult => { /.../ });
`
六、async/await简化Promise
用async和await替代.then,使代码更易读:
`javascript
async function loadData {
try {
const data = await fetchData; // 等待Promise完成
const result = await processData(data);
console.log("最终结果:", result);
} catch (error) {
console.log("出错:", error);
`
注意事项
嵌套。中若需继续异步操作,记得return new Promise`。掌握这些核心用法后,你可以更高效地处理JavaScript中的异步任务!


渝公网安备50011502000989号