2017-01-09 1 views
2

Когда я обрабатываю обещание с .finally(), тогда я получаю эту ошибку «Возможно необработанное отклонение», поэтому вместо .Наконец я должен использовать избыточность. затем() и .catch() с тем же кодом внутри. Это ошибка или есть правильный способ справиться с этим отказом?Угловая 1.6.1 «Возможно необработанное отбраковка» при использовании .finally()

const deferred = $q.defer(); 
deferred.promise.finally(() => {}); 
deferred.reject(); 

Вот fiddle.

+0

См. Https://stackoverflow.com/questions/41063947/angular-1-6-0-possible-unhandled-rejection-error –

+0

http://stackoverflow.com/questions/41281515/possibly-unhandled- отклонение в угловом-1-6 –

+0

https://github.com/angular/angular.js/blob/v1.6.1/CHANGELOG.md –

ответ

3

finally обещаний имеет такое же поведение/намерение как finally в попробовать блок.

Если вы пишете:

try { 
    throw new Error('test') // do some stuff 
} finally { 
    console.log('finally') 
} 

Затем console.log('finally') выполняется, но после того, что код остановится с:

Uncaught Error: test

То же самое с Promises, вы можете использовать finally для выполнения независимо от того, выполняется ли обещание или отклонено, но вам все равно необходимо использовать обратный вызов catch для обработки отклонения.

Смежные вопросы