6-4 Promise扩展 finally

45 阅读1分钟

Promise.prototype.finally

//Promise.prototype.finally 不管成功还是失败都会执行

new Promise((resolve, reject)=>{
  setTimeout(()=>{
    resolve('success')
    // reject('fail')
  }, 1000)
}).then(res=>{
  console.log(res)
}).catch(err=>{
  console.log(err)
}).finally(()=>{
  console.log('finally')
})

应用场景,如果在一个弹出框返回结果之后取消 loading的状态,如果按照之前的方法,在成功跟失败的情况下都需要写一遍代码去执行,形成代码的冗余,使用finally 之后,不管成功还是失败都会执行,执行代码只需要执行一遍