Разница в реализации httpclient между Flutter и Angular? - PullRequest
0 голосов
/ 29 апреля 2020

В настоящее время при разработке сайта на основе Angular я столкнулся с ситуацией, которая смущает меня и заставляет задуматься.

Действительно, как и большинство веб-сайтов / приложений в 2020 году, у пользователя есть возможность идентифицировать себя в своей учетной записи, чтобы получить доступ к своей личной информации.

Уже разработав приложение Flutter для обучения, я настроил систему идентификации по логину / паролю, используя вызовы API.

Этот звонок виден на изображении ниже. Как вы можете видеть на этом рисунке, я получаю ответ API благодаря ожиданию запроса POST.

Затем я переключил статус-код моего ответа.

Flutter api call

И вот тут возникает мой вопрос. Я думал, что возьму ту же мысль для моего Angular сайта, но возникает «проблема».

Когда я настраиваю этот «метод» в Angular, если я ввожу неверную информацию о пользователе, я на самом деле ответа нет, но браузер сообщает мне, что произошла ошибка.

Вы увидите другой сценарий ios в двух снимках ниже.

enter image description here

Мой вопрос, наконец, "прост":

Почему я могу включить statuCode ответа Flutter, а не в Angular? точнее, почему 400 ответов считаются ошибками в Angular, а не во флаттере?

Просто разница в реализации между двумя платформами?

1 Ответ

1 голос
/ 29 апреля 2020

Это разница в рамках. Однако вы все равно можете делать то, что вам нужно, с помощью Angular, используя канал наблюдаемого и оператор catchError. (Предполагается, что вы используете последнюю версию Angular)

this.http.post(..).pipe(
    catchError((err) => {
        switch(err.status) {
            case 400: {
               // Do something
               break;
            }
            case 500: {
               // Do something
               break;
            }
            default: { 
               //Do something 
               break; 
            } 
        }
    }).toPromise();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...