Angular intercept — как сделать что-то, при abort запроса из вне?

В Angular, перехват запросов можно реализовать с помощью функции-перехватчика (interceptor). Angular предоставляет HttpClientInterceptor для перехвата и модификации HTTP-запросов и ответов перед их отправкой и получением соответственно.

Для реализации перехватчика и обработки события отмены запроса из вне, вам понадобится выполнить следующие шаги:

1. Создайте класс-перехватчик, который будет реализовывать интерфейс HttpInterceptor:

import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable()
export class MyInterceptor implements HttpInterceptor {
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    // ваш код обработки запроса
    return next.handle(request);
  }
}

2. Зарегистрируйте этот перехватчик в модуле, который использует HttpClient, добавив его в опции провайдеров:

import { NgModule } from '@angular/core';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { MyInterceptor } from './my-interceptor';

@NgModule({
  imports: [HttpClientModule],
  providers: [
    { provide: HTTP_INTERCEPTORS, useClass: MyInterceptor, multi: true }
  ]
})
export class MyModule { }

3. В методе intercept класса-перехватчика вы можете проверять событие отмены запроса из вне и выполнять соответствующие действия. Например, использовать условный оператор if для проверки, перехвачен ли запрос:

import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable()
export class MyInterceptor implements HttpInterceptor {
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    // Проверяем, перехвачен ли запрос событием отмены из вне
    if (request.cancelled) {
      // Выполняем нужные действия
    }

    return next.handle(request);
  }
}

После реализации перехватчика и его регистрации в модуле, Angular будет использовать его для перехвата и обработки всех HTTP-запросов. В функции intercept вы можете добавить дополнительную логику для обработки события отмены запроса из вне в соответствии с вашими потребностями.