Spring Webflux: обратное давление для не Java-клиента - PullRequest
0 голосов
/ 08 ноября 2019

Есть ли способ использовать противодавление для не Java-подписчика (например, некоторые JS lib)?

Для этого издателя

Flux.range(1, 100)

и этого подписчика:

public class SystemOutBackpressureSubscriber<T> extends BaseSubscriber<T> {

    private int delay;

    public SystemOutBackpressureSubscriber(int delay) {
        this.delay = delay;
    }

    public void hookOnSubscribe(Subscription subscription) {
        request(1);
    }

    public void hookOnNext(T value) {
        System.out.println(value);
        if(delay != 0) {
            try {
                Thread.sleep(delay);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        request(1);
    }
}

, если delay == 0 все номера напечатаны одновременно, но если delay != 0, перед паузойкаждый номер напечатан. Есть ли способ сделать то же самое, но с JS? Во всех примерах в интернете, на которые я смотрел, клиент JS может только слушать поток событий. Если контроллер Rest возвращает производителя, например Flux.range(1, 100), возможно ли изменить частоту событий на клиенте?

...