技术文摘
promise的函数有哪些
2025-01-10 14:52:59 小编
Promise的函数有哪些
在JavaScript异步编程中,Promise是一个极为重要的概念,它提供了一系列强大的函数来处理异步操作。了解这些函数,能极大提升我们处理异步任务的效率和代码的健壮性。
首先是 then() 函数。这是Promise最常用的函数之一,它用于处理Promise的成功状态。当Promise被成功解决(resolved)时,会执行 then() 回调函数中的代码。例如:
const promise = new Promise((resolve) => {
setTimeout(() => {
resolve('成功的结果');
}, 1000);
});
promise.then((result) => {
console.log(result);
});
上述代码中,promise 经过一秒后被成功解决,then() 函数接收 resolve 传递的结果并打印出来。
catch() 函数则用于处理Promise的失败状态。当Promise被拒绝(rejected)时,会执行 catch() 回调函数中的代码。比如:
const errorPromise = new Promise((_, reject) => {
setTimeout(() => {
reject(new Error('发生错误'));
}, 1500);
});
errorPromise.catch((error) => {
console.error(error);
});
这里 errorPromise 经过一秒半后被拒绝,catch() 捕获到错误并在控制台打印错误信息。
finally() 函数无论Promise的状态如何都会执行。它接收一个回调函数,不管Promise是成功还是失败都会执行该回调。例如:
const anyPromise = new Promise((resolve) => {
setTimeout(() => {
resolve('任意状态');
}, 2000);
});
anyPromise
.then((res) => console.log(res))
.catch((err) => console.error(err))
.finally(() => console.log('无论如何都会执行'));
这段代码中,finally() 里的内容在Promise解决后一定会执行。
除了实例方法,Promise还有一些静态方法。比如 Promise.all(),它接收一个Promise数组,只有当数组中的所有Promise都成功解决时,它返回的Promise才会成功,并且返回一个包含所有Promise结果的数组。Promise.race() 同样接收一个Promise数组,哪个Promise先完成(成功或失败),它返回的Promise就以哪个Promise的结果或错误来结束。
掌握Promise的这些函数,能让我们在异步编程中更加得心应手,编写出更高效、更可靠的代码。