Когда я запускаю этот код с помощью Node, он выдает ошибку Unhandled promise rejection
в консоли (даже сначала показывая текст error caught
).
const promise = new Promise((resolve, reject) => setTimeout(reject, 1000))
promise.then(() => console.log('ok'))
promise.catch((e) => console.log('error caught'))
Тем не менее, когда я связываю метод catch
с методом then
, ошибка исчезает:
const promise = new Promise((resolve, reject) => setTimeout(reject, 1000))
promise.then(() => console.log('ok')).catch((e) => console.log('error caught'))
Разве первый код не должен обрабатывать отклонение?
Я также попробовал первый код в Chrome, и он работает, если я открываю инспектор, когда нахожусь в новой вкладке (или google.com). Если я нахожусь на любой другой странице (например, stackoverflow.com), она выдает исключение. Любое объяснение этому? Это кажется мне очень странным!