ember обеспечивает значение по умолчанию error handlers
, которое будет запущено при обнаружении соответствующего подсостояния ошибки.
Например: если хук маршрута model
возвращает полезную нагрузку error
(ответ об ошибке от сервера)событие ошибки может быть обработано и использовано для отображения сообщения об ошибке, перенаправления на страницу и т. д.
import Route from '@ember/routing/route';
export default Route.extend({
model(params) {
return this.store.findAll('privileged-model');
},
actions: {
error(error, transition) {
if (error.status === '403') {
this.replaceWith('login');
} else {
// Let the route above this handle the error.
return true;
}
}
}
});
Ссылка - https://guides.emberjs.com/release/routing/loading-and-error-substates/
(ИЛИ)
Вы можете справиться с этим напрямую, когда обещание разрешено, используя .then
,
model(params) {
return this.store.findAll('privileged-model').then((response) => {
// handle success
}, (response) => {
// handle error
if (response.status === '403') {
// handle 403 errors
}
})
},