一、Promise实例
Promise用于表示异步操作的结果(完成/失败)
//Promise实例
//调用resolve函数表示成功
new Promise((resolve, reject) => {
resolve('success')
})
/调用reject函数表示失败
new Promise((resolve, reject) => {
resolve('fail')
})
二、then
1、Promise.prototype.then(handleSuccess, handleFail)方法较为常用,两个参数为函数
2、handleSuccess和handleFail分别用于处理异步成功的情况和失败的情况,最后都会返回一个成功状态的Promise实例
3、未使用then方法情况:
//测试Promise的reject状态
async function testPromise() {
await new Promise((resolve, reject) => {
reject('fail')
})
//因为Promise状态为reject失败,程序会报错,所以不会打印123
console.log('123')
}
testPromise()
4、使用then方法处理的情况
async function testPromise() {
// 处理成功状态
const handleSuccess = (res) => {
// 成功状态处理逻辑
}
// 处理失败状态
const handleFail = () => {
// 失败状态处理逻辑
}
await new Promise((resolve, reject) => {
reject('fail')
}).then(handleSuccess, handleFail)
console.log('123')
}
testPromise()
三、catch
1、Promise.prototype.catch( handleFail)方法是对失败状态的另一种处理
2、handleFail用于处理异步成功失败的情况,最后会返回一个成功状态的Promise实例
async function testPromise() {
// 处理失败状态
const handleFail = () => {
// 失败状态处理逻辑
}
await new Promise((resolve, reject) => {
reject('fail')
}).catch(handleFail)
console.log('123')
}
testPromise()
总结
1.当Promise为失败状态时,可以使用then方法或catch方法处理
今天突然的雷声。
先雷后雨雨必小,先雨后雷雨必大。 ——《天气谚语》