Как вызвать только недавний хит api и прервать сеанс предыдущего вызванного api в реагирующем? - PullRequest
1 голос
/ 11 июня 2019

На самом деле, здесь я собираюсь вызвать API на основе слова, которое я хочу найти, и слова, которые смотрятся из моих поисковых слов, ищутся правильно, но здесь проблема в том, если я набрал большое слово, какэта длина больше 3, поэтому API ударил 3 раза, а также вернул результат, связанный с этими словами, но в этом случае я просто хочу переопределить вызовы API и запустить только последний API с полным словом, которое я набрал так:любой способ справиться с этой ситуацией.

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Я думаю, что вы можете использовать функцию debounce. Это задержит ваш вызов функции и просто вызовет последний.

function debounce (fn, delay) {
    let timer   = null;

    return function () {
    let args = arguments;
    let context = this;

        if (timer) {
            clearTimeout(timer);

            timer = setTimeout(function () {
                fn.apply(context, args);
            }, delay);
        } else {
            timer = setTimeout(function () {
                fn.apply(context, args);
            }, delay);
        }
    }
}

function apiCall(){
// your code
}

function realCall(){
  return debounce(apiCall,300)
}
0 голосов
/ 11 июня 2019

Вы можете использовать кнопку для начала поиска

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...