Да, в большинстве случаев блок try / catch огромен, для краткости вы можете использовать await-to-js
libs. Таким образом, мы можем использовать, как показано ниже.
const [err, result] = await to(doSomething());
Обратите внимание, что он никогда не взорвется, потому что мы добавили обработчик catch для этого обещания.
Я просто скопировал источник из https://github.com/scopsy/await-to-js
.
export function to<T, U = Error> (
promise: Promise<T>,
errorExt?: object
): Promise<[U | null, T | undefined]> {
return promise
.then<[null, T]>((data: T) => [null, data])
.catch<[U, undefined]>((err: U) => {
if (errorExt) {
Object.assign(err, errorExt);
}
return [err, undefined];
});
}
export default to;