использование возвращаемого значения с подпиской для создания подписываемых обещаний - PullRequest
0 голосов
/ 05 июня 2018

Таким образом, в настоящее время у меня есть следующий код, который ожидает ввода элемента, чтобы завершить набор, который затем выполняет ajax.

input = элемент ввода например <input>
axiosAjax = просто мой ajax

fromEvent(input, "keyup")
    .pipe(
        map(i => i.currentTarget.value),
        debounceTime(delay),
        distinctUntilChanged(),
        switchMap(value => 
        {
            this.page = 1
            return this.axiosAjax({
                path,
                method,
                data: {
                    ...data,
                    [term]: value
                }
            })
        })
    )

Я пытаюсь переместить ajax из switchMap, чтобы я мог вызвать ajax вне этой функции.Например, .subscribe( () => this.aDifferentAjax() ).Тем не менее, я все еще хотел бы сохранить возможность отбрасывать старые Ajaxes.

Как мне поступить?

Может быть, выглядит примерно так:

fromEvent(input, "keyup")
    .pipe(
        map(i => i.currentTarget.value),
        debounceTime(delay),
        distinctUntilChanged(),
        switchMap(value => 
        {
            this.page = 1
            return value
        })
    )
    .subscribe(
        () => this.aDifferentAjax()
        // ^This ajax can be discarded if new input is detected
    )
...