Promise实例的finally方法
Promise.prototype.finally()
finally( )方法用于指定不管Promise对象最后状态如何,都会执行的操作,不管promise最后的状态,在执行完 then或catch指定的回调函数以后,都会执行finally方法指定的回调函数。
promise .then(result => {···}) .catch(error => {···}) .finally(() => {···});
finally
方法的回调函数不接受任何参数,这意味着没有办法知道,前面的 Promise 状态到底是fulfilled
还是rejected
。这表明,finally
方法里面的操作,应该是与状态无关的,不依赖于 Promise 的执行结果。
finally方法本质上是then方法的特例,
promise .finally(() => { // 语句 }); // 等同于 promise .then( result => { // 语句 return result; }, error => { // 语句 throw error; } );
上面代码中,如果不使用finally
方法,同样的语句需要为成功和失败两种情况各写一次。有了finally
方法,则只需要写一次。
未完,待续......