Code Lab

Закрыть в finally

ЛёгкаяОшибки5 мин

Напиши функцию useResource(log, work). Сначала она добавляет в массив log строку 'open', потом вызывает work() и возвращает её результат. В конце в log всегда попадает 'close', даже если work() бросила ошибку. Саму ошибку не перехватывай, пусть она уходит дальше как есть.

Примеры

useResource([], () => 42)

Вернёт 42

(() => { const log = []; useResource(log, () => 'done'); return log; })()

Вернёт [ 'open', 'close' ]

Источник

Загружаем редактор...
  1. Возвращает результат work, в log есть open и close
  2. Ошибка из work уходит дальше, но close в log есть

Скрытые тесты запускаются по Submit.