JS 中 Promise 用法(简要总结)
在JavaScript中,Promise
是一种用于异步计算的对象。一个 Promise
对象代表了一个可能还不可用的值,或者一个在未来某个时间点才可用的最终值。
以下是 Promise
的基本用法:
# 1. 创建 Promise:
let promise = new Promise((resolve, reject) => {
// 异步操作
if (/* 操作成功 */) {
resolve(value); // 成功时调用,value是操作的结果
} else {
reject(error); // 失败时调用,error是失败的原因
}
});
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 2. 使用 Promise:
.then()
方法用于指定当Promise
成功时的回调函数。.catch()
方法用于指定当Promise
失败时的回调函数。.finally()
方法用于指定不管Promise
成功还是失败,最后都会执行的回调函数。
promise
.then(result => {
// 对 result 进行操作
})
.catch(error => {
// 处理 error
})
.finally(() => {
// 无论成功或失败都会执行
});
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 3. 链式调用:
Promise
的 .then()
和 .catch()
方法都会返回一个新的 Promise
,因此可以进行链式调用。
promise
.then(result => {
// 处理 result
return anotherPromiseOrValue; // 返回值会成为下一个.then()的参数
})
.then(newResult => {
// 处理 newResult
})
.catch(error => {
// 处理 error
});
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Promise.all():
用于处理多个Promise
,只有当所有Promise
都成功时,才会触发成功回调。
Promise.all([promise1, promise2, promise3])
.then(results => {
// results 是一个数组,包含所有 promise 的结果
})
.catch(error => {
// 如果任何一个 promise 失败,就会执行这里
});
1
2
3
4
5
6
7
2
3
4
5
6
7
Promise.race()
: 用于处理多个Promise
,只要有一个Promise
完成(不管是成功还是失败),就会触发回调。
Promise.race([promise1, promise2, promise3])
.then(result => {
// 处理第一个完成的 promise 的结果
})
.catch(error => {
// 处理第一个完成的 promise 的错误
});
1
2
3
4
5
6
7
2
3
4
5
6
7
Promise
是现代JavaScript中处理异步操作的核心,它使得异步代码的编写和管理变得更加清晰和简单。
上次更新: 2024/12/23, 21:39:55
- 01
- linux 在没有 sudo 权限下安装 Ollama 框架12-23
- 02
- Express 与 vue3 使用 sse 实现消息推送(长连接)12-20