# 创建 Promise 对象
// 初始化状态 | |
let promise = new Promise(function (resolve, reject) { | |
/** | |
* resolve - 是一个函数,将 Promise 对象的状态改为成功 | |
* rejecte - 是一个函数,将 Promise 对象的状态改为失败 | |
*/ | |
setTimeout(() => { | |
resolve("测试成功了!"); | |
}, 200); | |
}); | |
//then 将 promise 的状态改变 | |
promise.then(function (value) { | |
console.log(value); // 测试成功了! | |
}); |
# Promise 对象原型的方法
then()
方法主要作用是为
Promise
对象添加状态改变时回调函数。其第一个参数 resolved 状态的回调函数。第二个参数是 rejected 状态时的回调函数。catch()
方法此方法返回一个 Promise 对象,并且处理拒绝的情况。
let promise = new Promise(function (resolve, reject) {
setTimeout(() => {
reject("测试成功了!");
}, 200);
});
//then 将 promise 的状态改变
promise
.then((value) => {
console.log("then() :", value);
})
.catch((value) => {
console.log("catch() :", value); //catch () : 测试成功了!
});
finally()
方法返回一个 Promise 对象,在执行
then()
和catch()
后,都会执行finally()
方法。let promise = new Promise(function (resolve, reject) {
setTimeout(() => {
reject("测试成功了!");
}, 200);
});
//then 将 promise 的状态改变
promise
.then((value) => {
console.log("then() :", value);
})
.catch((value) => {
console.log("catch() :", value); //catch () : 测试成功了!
})
.finally(() => {
console.log("finally"); // finally
});
# 对象方法
Promise.resolve(value)
返回一个成功的对象
Promise.reject(reject)
返回一个失败的对象
Promise.all()
将对各 Promise 对象整合成一个。
let promise1 = new Promise((resolve, reject) => {
resolve("promise1");
});
let promise2 = new Promise((resolve, reject) => {
resolve("promise2");
});
let promise3 = new Promise((resolve, reject) => {
resolve("promise3");
});
let promise = Promise.all([promise1, promise2, promise3]);
promise.then((value) => {
console.log(value); // [ 'promise1', 'promise2', 'promise3' ]
});
Promise.race()
在整合中的 Promise 对象中,哪个 Promise 对象先执行完,函数就返回什么。
let promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("one");
}, 100);
});
let promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("two");
}, 300);
});
let promise = Promise.race([promise1, promise2]);
promise.then((value) => {
console.log(value); //one 因为第一个先执行完
});