Promise 使用方法
Promise
的基本使用
Promise
是一个构造函数,通过new
关键字实例化对象
语法
1
new Promise((resolve, reject) => {})
- 接受一个函数作为参数
- 在参数函数中接受两个参数
- resolve
- reject
Promise
实例
Promise
实例有两个属性
- state
- result
Promise
的状态
- pending
- fulfilled
- rejected
Promise
状态的改变
通过调用resolve()
和reject()
改变当前Promise对象的状态
1
2
3
4
5
const p = new Promise((resolve, reject) => {
// resolve(); 调用函数,使当前Promise对象的状态改为fulfilled
// reject(); 调用函数,使当前Promise对象的状态改为rejected
})
console.dir(p); //fulfilled
Promise状态的改变是一次性的
Promise
的结果
1
2
3
4
5
6
const p = new Promise((resolve, reject) => {
// 调用函数,传递参数,改变丹铅Promise对象的结果
// resolve('success result');
// reject('fail result');
})
console.dir(p);
Promise
的方法
then
方法
返回值是一个Promise
对象
1
2
3
4
5
6
7
8
9
10
const p = new Promise((resolve, reject) => {
resolve('success');
})
p.then((value) => {
console.log('成功时调用', value);
}), (reason) => {
console.log('失败时调用', reason);
}
console.dir(p);
Promise
状态不改变不会执行then
方法
使用return
可以将实例的状态改为fulfilled
,return
的值会作为下一个then
的参数。在前一个实例中出错则状态改为rejected
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const p = new Promise((resolve, reject) => {
resolve('success');
})
p.then((value) => {
console.log('成功时调用', value);
return 1;
}), (reason) => {
console.log('失败时调用', reason);
return -1;
}.then((value) => {
console.log('成功时调用', value);
}), (reason) => {
console.log('失败时调用', reason);
}
catch
方法
1
2
3
4
5
const p = new Promise((resolve, reject) => {
throw new Error('Error occured');
}).catch ((reason) => {
console.log('Failed', reason)
})
当Promise
的状态改为rejected
或Promise
执行体中出现代码错误时,catch
方法被执行
This post is licensed under CC BY 4.0 by the author.