У меня есть один простой эффект, который делает запрос GET, используя сервис Injected Angular.
Этот запрос возвращает ответ JSON (10 000 строк).
@Effect()
effectExample$ = this.actions$
.pipe(
ofType(actions.ONE_EXAMPLE_REST_API_ACTION),
switchMap((action: actions.OneExampleRestApiAction) => {
console.time('timer');
return this.service
.getJsonResponse()
.pipe(
map((response) => {
console.timeEnd('timer');
return new actions.OneExampleRestApiActionSuccess(response);
})
);
})
);
Как видите, я добавил console.time ('timer');console.timeEnd ('timer');
А что происходит?
В консоли я получаю, что таймер занимает примерно 15-20 секунд. Это может отличаться, в то время как если я вызываю тот же запрос, который вызывается с помощью getJsonResponse () с использованием POSTMAN , тогда запросы всегда занимают максимум 2-3 секунды.
getJsonResponse() {
return this.http
.get(`http://example.com/getjson`);
}
Что может бытьпричина в том, что до выполнения карты требуется 15 - 20 секунд или
return new actions.OneExampleRestApiActionSuccess(response);
Может ли это быть потому, что ответ является объектом JSON из 10000 строк, чтобы почтальон мог обработать его быстрее или? У меня действительно нет идеи в настоящее время, что является блокировщиком из строки: .getJsonResponse () до , возвращают новые действия. Мне нужно, как я сказал, только 2-3 секунды, чтобы вернуть ответ, если я использую почтальон.
Также во вкладке сети для указанного выше запроса показывается время выполнения 2 секунды, но, очевидно, Angular или Effect требуется 15 - 20 секунд. чтобы добраться до возврата новых действий. OneExampleRestApiActionSuccess (response);