Угловой 7: приостановить текущий запрос потоковой передачи и продолжить при обработке фрагмента данных - PullRequest
0 голосов
/ 05 декабря 2018

Доброе утро, великий джедай угловой мироздания :)

Я пытаюсь реализовать следующую идею с Angular 7 и RxJS 6. У меня есть конечная точка REST API, которая передает данные в виде фрагментов.Поскольку я получаю один кусок данных, я хотел бы иметь возможность приостановить запрос (чтобы угловой HttpClient не получал данные в это время).Когда я закончу обработку данных, я бы хотел получить еще одну порцию.Эта конечная точка могла бы передавать большие куски данных, и я не хочу заполнять память ими.Вместо этого я хочу обрабатывать куски по частям.

В моем воображении фиктивный код будет выглядеть примерно так:

const req = new HttpRequest(
    'POST',
    'localhost:9000',
    {},
    {
        reportProgress: true,
        responseType: 'json'
     });

const source = http.request(req)

const pause = new BehaviourSubject(false);

source
    .pipe(pauseStream(pause))
    .getSearchProductsStream.subscribe(dataChunk => { 
        pause.next(true);
        doOperations(dataChunk)
        pause.next(false);
})

Есть ли что-то подобное в Angular (некоторые специфические настройки HttpClient) или RxJS (секретные операторы), которые потенциально могут решить эту проблему?

С уважением, Angular падаван.

...