Promise 是 JS 中的一种异步处理方式,用于表示异步的结果
状态:pending(进行中)、fulfilled(已完成)、rejected(已拒绝)
状态流转:pending => fulfilled;pending => rejected;
使用方式:
// 基本使用 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('结束了')
})
常用方法:
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 - 掘金