.finally is not a function —— 解决低版本浏览器axios不支持finally

747 阅读1分钟

 

框架项目用axios调用接口时,我们常用:

  1. 接口名().then(result=>{
  2. do sth...
  3. }).catch(()=>{
  4. do sth...
  5. }).finally(()=>{
  6. do sth...
  7. })

却会遇到这个问题:

  1. fName(...).then(...).catch(...).finally is not a function
  2. 造成此问题的原因为:浏览器版本太低

除了升级最新版浏览器(火狐甚至升级后还报错),解决办法如下:

  1. 安装 promise.prototype.finally 包
  2. npm i promise.prototype.finally

最后记得在 main.js 里引入该依赖包:

require('promise.prototype.finally').shim();

也可以用bluebird代替Promise 运行npm install bluebird进行安装 之后在代码中写入window.Promise = require('bluebird')即可