Promise 用法api
1.基本用法
var i = 10;
let ap1 = new Promise((resolve, reject) => {
if (i > 10) {
resolve("我是成功");
} else {
reject("我是失败的");
}
});
1.写法1
ap1.then(
res => {
console.log(res); //我是成功"
},
err => {
console.log(err);
}
);
2.写法2
ap1.then(res => {
console.log(res); //我是成功"
})
.catch(err => {
console.log(err);
});
3.写法3
ap1.then(
res => {
console.log(res); //我是成功"
},
err => {
//必写,不然报错
console.log(err);
}
);
//把catch抽离出来,
ap1.catch(err => {
console.log(err);
});
2.简便写法
let p1;
if (false) {
p1 = Promise.resolve("成功1");
} else {
p1 = Promise.reject("失败2");
}
p1.then(
res => {
console.log(res);
},
err => {
console.log(err);
}
);
Promise.all([]) Promise.race([])
- 区别
Promise.all([]) 里面的成功返回 为数组
Promise.race([]) 第一个为正确返回 为字符串 只返回第一个
let p1 = Promise.resolve("成功1");
let p2 = Promise.resolve("成功2");
Promise.all([p1]).then(
res => {
console.log(res);
},
err => {
console.log(err);
}
);