自动完成从 API 获取数据

Autocomplete getting data from API

我想创建一个从 Google Maps Place API.

检索地点的自动完成输入组件

这是来自 API 的示例响应: https://developers.google.com/places/web-service/search#PlaceSearchResponses

我的问题是我应该如何处理用户输入/键入并调用 API 来更新自动完成选项?

这样做是否正确: 在 keyup 上设置超时,检查用户是否停止输入,然后在几秒后调用 API;并在 keydown 上清除超时以避免在用户仍在键入时调用 API?

我无权访问 Google Cloud Platform Console,因此我无法启用地图 Javascript API 和使用 Place Autocomplete

您使用的是纯 javascript 吗? 如果没有,你可以使用 lodash debounce function,它正是你需要的。

编辑: 正如有人在评论中指出的那样,我不应该只 post 一个 link 作为答案,所以我将提供一个片段来帮助改进这个答案

import _ from 'lodash';
$(selector).on('keyup', _.debounce(function (e) {
      // stuff
    }
}, 500));