Promise.finally()方法详解

分类:知识百科 日期: 点击:0

Promise.finally()介绍

Promise.finally()是ES2018新增的API,它的作用是在Promise完成或拒绝后都会执行,不管Promise最终状态如何,它接收一个普通函数,不返回任何值。

Promise.finally()使用方法

Promise.finally()接收一个函数作为参数,该函数不接收任何参数,也不返回任何值,它会在Promise完成或拒绝后都会执行。

Promise.resolve('success')
  .then(result => {
    console.log(result);
  })
  .catch(error => {
    console.log(error);
  })
  .finally(() => {
    console.log('finally');
  });
// success
// finally

以上代码中,Promise.resolve()返回一个Promise对象,它的状态为resolved,会执行then()方法,执行finally()方法,输出finally。

Promise.finally()用处

Promise.finally()可以用来做一些清理工作,比如:

  • 关闭加载动画
  • 取消网络请求
  • 清除定时器
  • 清除监听事件

这些清理工作不管Promise最终状态如何都会执行,可以放到finally()方法中。

// 关闭加载动画
Promise.resolve()
  .then(result => {
    console.log(result);
  })
  .catch(error => {
    console.log(error);
  })
  .finally(() => {
    console.log('close loading animation');
  });
标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。