У меня есть следующий код внутри приложения реакции (файл верхнего уровня - просто чтобы показать проблему, я знаю, что это не то место, где можно делать вызовы API и получать данные):
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
async function run() {
try {
return await fetch("https://somenonexistingplace.com");
} catch (e) {
console.error(e);
}
}
run();
ReactDOM.render(<App />, document.getElementById('root'));
Когда я запускаю этот код, catch, очевидно, кэширует исключение, но говорит, что e не определено, поэтому я не могу получить доступ к сообщению об ошибке, которое обычно находится в e. Смотрите скриншот из сеанса отладки
Когда я запускаю такой код вне приложения React в виде простого сценария, прикрепленного к html, все работает нормально , и e является объектом с правильным сообщением об ошибке.
Единственное отличие состоит в том, что первый пример находится в приложении React, а второй - вне React.
Итак, мои вопросы: что здесь происходит и как это исправить?
РЕДАКТИРОВАТЬ: Я знаю, что могу заменить его обещаниями и .catch (...), но это не главное - меня интересует, почему try / catch не работает здесь, как ожидалось.