废话不多,先上代码
function p1(v) {
return new Promise((resolve, reject) => {
console.log('p1',v+1);
if(typeof v==='number'){
resolve(v+1)
}else {
reject('值必须是number类型')
}
})
}
function p2(v) {
return new Promise((resolve, reject) => {
console.log('p2',v+2);
if(v<10){
resolve(v+2)
}else {
reject('值不能大于10')
}
})
}
let p=new Promise((resolve, reject) => {
console.log('start...')
resolve('5')
})
p.then(p1).then(p2).then(p2).then(p2).then(p2).then(p2).then((res)=>{
console.log('result:',res);
}).catch(err=>{
console.log('err:',err);
})
一、Promise介绍:
1.Promise最大的好处是在异步执行的流程中,把执行代码和处理结果的代码清晰地分离了。
2.Promise可以做很多的事情,比如,有若干个异步任务,需要先做任务1,如果成功后再做任务2,任何任务失败则不再继续并执行错误处理函数。
3.要串行执行这样的异步任务,不用Promise需要写一层一层的嵌套代码。
二、例子解释
1.这里定义了三个对象,p、p1、p2;
2.在p1中规定了传入的值必须是number类型,
如果在p中传入的是string等其他类型,在p1中就会执行reject并执行catch抛出错误(值必须是number类型);
number.png
3.在p2中规定了传入的值必须小于10,
如果在p1得到的值大于等于10,在p2中就会执行reject并执行catch抛出错误(值不能大于10);
10.png
4.条件都满足,执行的结果
result.png









网友评论