У меня есть эта простая функция asyn c:
async function do_stuff() {
try {
console.log("Start")
await inner_func();
}
finally {
console.log("At finally");
}
}
к моему удивлению это печатает:
Start
At finally
(things from the async inner_func)
Теперь, концептуально я могу понять, почему это происходит, await
возвращает Обещание от do_stuff
, а возврат из функции вызывает finally
, но это, кажется, нарушает весь смысл await
- что это дает иллюзию что код выполняется последовательно
Таким образом, правильное решение, по-видимому, заключается в том, чтобы взять обещание и вызвать на нем finally()
, но это выглядит странно, поскольку мне нужно будет дважды продублировать код в finally {}