19、Promise 是什么?

Promise 是 JS 中的一种异步处理方式,用于表示异步的结果

状态:pending(进行中)、fulfilled(已完成)、rejected(已拒绝)
状态流转:pending => fulfilled;pending => rejected;

使用方式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 基本使用 1
new Promise((resolve, reject) => {
// ....
resolve()
}).then(res => {
console.log('成功了', res)
}, err => {
console.log('失败了', err)
}).finally(() => {
console.log('结束了')
})

// 基本使用 2
new Promise((resolve, reject) => {
// ....
resolve()
}).then(res => {
console.log('成功了', res)
}).catch(err => {
console.log('失败了', err)
}).finally(() => {
console.log('结束了')
})

常用方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Promise.resolve(1).then(res => {
console.log('成功了', res) // 1
})

Promise.rejected(1).catch(err => {
console.log('失败了', err) // 1
})

Promise.all([Promise.resolve(1), Promise.resolve(2)]).then(res => {
console.log('都成功了', res) // [1, 2]
})
.catch((err) => {
console.log("有一个失败了", err);
});

Promise.race([Promise.resolve(1), Promise.resolve(2)]).then(res => {
console.log('有成功的', res) // 1 或 2
})
.catch((err) => {
console.log("有一个失败了", err);
});

补充知识:7、简单手写 Promise - 掘金


19、Promise 是什么?
https://mrhzq.github.io/职业上一二事/前端面试/每日知识卡片/19、Promise 是什么?/
作者
黄智强
发布于
2024年2月3日
许可协议