После вызова обратного вызова обещания reject()
в консоли Chrome появляется предупреждающее сообщение "Uncaught (in обещание)". Я не могу обернуть голову ни вокруг причины этого, ни как от него избавиться.
var p = new Promise((resolve, reject) => {
setTimeout(() => {
var isItFulfilled = false
isItFulfilled ? resolve('!Resolved') : reject('!Rejected')
}, 1000)
})
p.then(result => console.log(result))
p.catch(error => console.log(error))
Внимание:
Изменить:
Я обнаружил, что если обработчик onRejected
явно не предоставлен методу .then(onResolved, onRejected)
, JS автоматически предоставит неявный. Это выглядит так: (err) => throw err
. Сгенерированный автоматически обработчик выдаст свою очередь.
Справка:
Если IsCallable (onRejected) 'равен false, то
Пусть onRejected будет "Thrower".
http://www.ecma-international.org/ecma-262/6.0/index.html#sec-performpromisethen