# Promise
# 使用
// 每次调用 Promise 的方法后,会返回 Promise 对象,可以链式调用
var promise = new Promise((resolve, reject) => {
// 模拟耗时操作
setTimeout(() => {
resolve("1 执行成功,返回结果");
}, 2000);
})
.then(res => {
console.log(res); // 1 执行成功,返回结果
// 也可返回对 res 操作后的值
return "2 执行成功,返回结果";
})
.then(res => {
console.log(res); // 2 执行成功,返回结果
return new Promise((resolve, reject) => {
resolve("3 执行成功,返回结果");
});
})
.then(res => {
console.log(res); // 3 执行成功,返回结果
throw new Error("1 执行失败,返回失败信息");
})
.catch(error => {
console.log(error); // Error: 执行失败,返回失败信息
throw "2 执行失败,返回失败信息";
});
// 后面哈可以继续 then、catch
# 多个 Promise 同时执行
var p1 = new Promise(resolve => {
setTimeout(() => {
console.log("p1");
resolve(1);
}, 1000);
});
var p2 = new Promise(resolve => {
setTimeout(() => {
console.log("p2");
resolve(2);
}, 2000);
});
var p3 = new Promise(resolve => {
setTimeout(() => {
console.log("p3");
resolve(3);
}, 500);
});
Promise.all([p1, p2, p3]).then(values => {
let [v1, v2, v3] = values;
console.log(v1, v2, v3); // 1 2 3
});
// 最终返回:
// p3
// p1
// p2
// 1 2 3
← 定时器 async & await →