Promise链式调用 终止或取消

Promise回调分两种方法,then成功,catch失败

let promise = new Promise(function(resolve, reject){
    resolve('第一次成功')
})

promise.then(function(val) {
    // 两种方法意思都代表报错,【中断下一步,直接报错
  //第一种方法
    throw new error()
  // 第二种方法
  return Promise.reject()
}).then(function(val) { console.log(
'被跳过的方法') }).catch(function(val) { console.log('返回失败') })

 

第三种方法有点粗暴,但也是目前看来可解决的可行办法

let promise = new Promise(function(resolve, reject){
    resolve('第一次成功')
})

promise.then(function(val) {
  //第三种方法
    return new Promise(()=>{})
}).catch(function(val) {
    console.log('返回失败')
}).then(function(val) {
    console.log('被跳过的方法')
})

 

前两种如果链式调用最后以失败结尾的话是可行的,如果以成功结尾就会出问题,第三种方法是直接阻断性,讲进程转到新的Promise

 

目前只想到三种方法,但本人认为这不是最好的解决办法,后续如果后小伙伴发现更好的办法可以评论哦

posted @ 2019-06-03 14:29  小短腿奔跑吧  阅读(6680)  评论(0编辑  收藏  举报