tgoop.com/super_oleg_dev/91
Create:
Last Update:
Last Update:
Привет!
У Angular ну очень классное API для HTTP Interceptors:
```
(request, next) => next(request)
```
Где next(request) возвращает response.
И для сравнения API у axios - https://axios-http.com/docs/interceptors
Это закрывает просто все необходимые кейсы:
- изменить параметры запроса
- вернуть кастомный ответ или ошибку
- модифицировать ответ или ошибку
Забираю в tramvai и депрекейчу накиданные мной на коленке страшные modifyResponse, modifyRequest и modifyError коллбэки для встроенного HTTP клиента)
Правда Angular создает инстанс Observable при вызове next, в tramvai Rx не используется, и будут обычные промисы:
[
// меняем параметры запроса
(req, next) => next({ ...req, timeout: 1000 }),
// модифицируем ответ
(req, next) => next(req)
.then((res) => ({ ...res, payload: 'Intercepted' }),
// модифицируем ошибку
(req, next) => next(req)
.catch((reason) => {
Object.assign(reason, { code: 'INTERCEPTED_ERROR' });
throw reason;
},
]
Мелкая фича, но всегда очень приятно встретить и позаимствовать лаконичное и функциональное API
BY SuperOleg dev notes
Share with your friend now:
tgoop.com/super_oleg_dev/91
