primise如何取消链式调用

120 阅读1分钟

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

利用报错终止

第一种throw new error() 使程序终止

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

promise.then(function(val) {
  //第一种方法
    throw new error()
}).then(function(val) {
    console.log('被跳过的方法')
}).catch(function(val) {
    console.log('返回失败')
})

第二种return Promise.reject() 使程序终止

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

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

以上两种方法意思都代表报错,【中断下一步,直接报错】

第三种方法 返回一个新的promise是进程

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('被跳过的方法')
})