详细使用promise的语法
// 产生一个成功值为1的promise对象
// 第一种方式
const p1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(1);
}, 1000);
});
// p1.then((value) => {
// console.log(value);
// });
// 这种方式等同于第一种方式,
const p2 = Promise.resolve(1);
// p2.then((value) => {
// console.log(value);
// });
const p3 = Promise.reject(3);
// p3.then(null, (reason) => {
// console.log(reason);
// });
//跟上者功能相同
// p3.catch((reason) => {
// console.log(reason);
// });
//Promise.all需要全部promise返回成功的数据才会执行成功回调(返回值是数组),不然只会调用失败的回调
const pall = Promise.all([p1, p2, p3]);
pall.then(
(values) => {
console.log("all onResolved()", values);
},
(reason) => {
console.log("all onRejected()", reason);
}
);
// Promise.race()哪个promise的回调函数(不确定是成功的回调还是失败的回调)先执行完就执行哪个的
const prace = Promise.race([p1, p2, p3]);
prace.then(
(value) => {
console.log("all onResolved()", value);
},
(reason) => {
console.log("all onRejected()", reason);
}
);