嗨,我有一个使用Mapbox的应用程序,我也使用地理编码来搜索地点和导航到该位置。在我尝试在searchField中输入关键字"Nayara“之前,它一直运行得很顺利。


当我在文本字段中搜索"Nayara“时,我得到了这个错误,textFieldIsChanging委托连接到了GeoCoding应用编程接口(这是异步通信,结果填充在tableView中)。我可以成功地搜索所有其他地方,但不是这个地方。这是地图框中的bug吗?这是唯一一个有问题的关键字吗?还是有其他关键字使应用程序表现成这样?需要专家的建议。提前谢谢。祝你编码愉快。
发布于 2018-03-24 05:54:17
当发出多个异步请求时,可能会以与请求顺序不同的顺序返回响应。当请求花费不同的时间时,这是一个特别的问题(地理编码查询就是这种情况)。
在这种情况下,查询Nayar的时间可能比查询Nayara的时间长,两者的差异足以使结果无序到达,因此Nayar响应将覆盖UI下拉列表中的Nayara。
此问题的典型解决方案包括添加去抖动(以便仅在两次击键之间经过任意时间量时才发出新的API请求),或者跟踪请求和响应的时间戳,并丢弃无序到达的陈旧响应。
后一种方法的示例可以在这里看到:https://github.com/mapbox/react-geocoder/pull/9
https://stackoverflow.com/questions/49426512
复制相似问题