- Если обрабатываем промис и возвращаем его, в
onRejected
возвращаемPromise.reject(error)
либо не используемonRejected
, чтобы в любом случае была возможность обработать reject снаружи.const load = () => { return fetcher.get('/url') .then( (data) => { // Do something return data; }, (error) => { // Do something return Promise.reject(error); } ); } load().then( (data) => console.log('Done!', data), (error) => console.log('Error!', error) );
const load = () => { return fetcher.get('/url') .then((data) => { // Do something return data; }); } load().then( (data) => console.log('Done!', data), (error) => console.log('Error!', error) );
- Если обрабатываем промис и НЕ возвращаем его, пишем в
onRejected
console.error
, чтобы избежать эксцепшенаUncaught in Promise
и при этом узнать об ошибке.const load = () => { fetcher.get('/url') .then( (data) => { // Do something }, console.error ); }
- Чтобы не усложнять, можно сохранить промис в переменную, на неё навесить
then
с обработкой, где естьonRejected
либоconsole.error
, а вернуть исходный промис.const load = () => { const promise = fetcher.get('/url'); promise.then( (data) => { // Do something }, (error) => { // Do something } ); return promise; } load().then( (data) => console.log('Done!', data), (error) => console.log('Error!', error) );
- Не используем
catch
послеthen
, чтобы эксцепшены изonFilfilled
попали в Sentry.
Last active
February 26, 2021 01:19
-
-
Save ipetropolsky/ebef64e4463c133f8c1637683682630d to your computer and use it in GitHub Desktop.
Как не получить Uncaught in Promise
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment