Унифицируйте sync и async ошибки в один поток!
Частая проблема: функция может упасть либо сразу, либо внутри Promise.
function parse(data) {
return JSON.parse(data); // sync ошибка
}
Обычно приходится отдельно думать про оба случая.
Promise.try() превращает любой вызов в Promise:
const result = await Promise.try(() => {
return JSON.parse(input);
});
Теперь одинаково работают и обычные ошибки, и async-код:
await Promise.try(async () => {
const data = await fetch('/api');
return data.json();
});
🔥 Удобно для обёрток над чужими функциями, плагинов и API, где заранее неизвестно — вернётся значение или Promise.
📣 JS Ready | #совет
Частая проблема: функция может упасть либо сразу, либо внутри Promise.
function parse(data) {
return JSON.parse(data); // sync ошибка
}
Обычно приходится отдельно думать про оба случая.
Promise.try() превращает любой вызов в Promise:
const result = await Promise.try(() => {
return JSON.parse(input);
});
Теперь одинаково работают и обычные ошибки, и async-код:
await Promise.try(async () => {
const data = await fetch('/api');
return data.json();
});
🔥 Удобно для обёрток над чужими функциями, плагинов и API, где заранее неизвестно — вернётся значение или Promise.
📣 JS Ready | #совет