上面代码中,不管promise
最后的状态,在执行完then
或catch
指定的回调函数以后,都会执行finally
方法指定的回调函数。
下面是一个例子,服务器使用 Promise 处理请求,然后使用finally
方法关掉服务器。
finally
本质上是then
方法的特例。
上面代码中,如果不使用方法,同样的语句需要为成功和失败两种情况各写一次。有了finally
方法,则只需要写一次。
上面代码中,不管前面的 Promise 是fulfilled
还是rejected
,都会执行回调函数callback
。
从上面的实现还可以看到,finally
方法总是会返回原来的值。