Функция finally
предназначена именно для того, чтобы убедиться, что внутренняя функция выполняется, даже если есть исключение. Вы можете получить желаемое поведение, используя только один finally
, например:
axios.get()
.then(() => doStuffOnSuccess())
.finally(() => {
axios.get().then(() => doFinallyStuff1())
.then(() => doFinallyStuff2())
.then(() => doFinallyStuff3())
.catch(e => console.error("Finally had trouble",e));
});
Таким образом, если что-либо в функции finally
завершится по истечении времени ожидания или выйдет из строя, это приведет к разрыву цепочки. Имея последний улов, вы избежите его отбрасывания вверх по цепочке.
Это предполагает, что вы используете finally
правильно, и все в этом всегда должно выполняться после предыдущих вызовов fini sh, даже если есть ошибки.