Autocomplete 自动完成时如何记录上次搜索请求?

Autocomplete 自动完成时如何记录上次搜索请求?,autocomplete,redux-saga,Autocomplete,Redux Saga,例如,当用户键入android时 客户端向服务器发送多个请求 即 a an 和等等 我想只在服务器上记录android搜索请求。 我该怎么做 我正在考虑以下策略,但不知道是否有更好的策略 像以前一样进行自动完成 如果用户按下键盘后1秒已过去,则发送特殊记录此搜索请求 如果我要实现上述功能,如何使用redux saga来实现它?您需要实现一系列最新的效果。因此,如果您的组件分派INPUT\u CHANGED操作,那么您的故事将如下所示: import { call, takeLatest, del

例如,当用户键入
android

客户端向服务器发送多个请求 即
a
an
等等

我想只在服务器上记录
android
搜索请求。
我该怎么做

我正在考虑以下策略,但不知道是否有更好的策略

  • 像以前一样进行自动完成
  • 如果用户按下键盘后
    1秒
    已过去,则发送特殊
    记录此搜索请求
  • 如果我要实现上述功能,如何使用
    redux saga
    来实现它?

    您需要实现一系列
    最新的
    效果。因此,如果您的组件分派
    INPUT\u CHANGED
    操作,那么您的故事将如下所示:

    import { call, takeLatest, delay } from 'redux-saga/effects'
    
    function* handleLog(action) {
      // debounce by 1 sec
      yield delay(1000); 
      if (action.payload.LOG_THIS_SEARCH_REQUEST) {
         const apiResult = yield api.log(action.payload.value);
         ...  // logic after api call is done
      }
    }
    
    function* watchInput() {
      // log latest input change
      yield takeLatest('INPUT_CHANGED', handleLog);
    }
    

    所以,在提供的示例中,如果用户在1秒内触发新的输入更改(即添加一个字母),那么saga将只处理最新的一个字母。

    谢谢,您刚才是否有效地实现了redux saga的
    去Bounce
    效果?