gpt4 book ai didi

javascript - 清除 JS 响应

转载 作者:行者123 更新时间:2023-12-03 12:45:16 24 4
gpt4 key购买 nike

我正在调用 API。 API 返回结果列表。当它这样做时 - 响应被送入一个对象,然后我用它来遍历并显示它们。

这是执行此操作的函数:

    var getAvailability = () => {
if (chosenData.hotel == "") {
showError("Please select a location before booking.");
$timeout(() => LTBNavService.setTab('location'), 50);
return;
}

searchResponse = {};
console.log(searchResponse);
WebAPI.getHotelAvailability(genSearchObject()).then((data) => {
searchResponse = data;
$timeout(() => $('[data-tab-content] .search-btn').first().focus(), 50);
generateRoomTypeObject(searchResponse);
}, (data) => searchResponse.error = data.data.errors[0].error);

};

问题:在新的结果集可用之前,旧结果仍会显示。这会导致闪烁和延迟,这是一种糟糕的用户体验。

解决方案:(我需要帮助)处理此问题的最佳方法是什么?理想情况下,我想重置/清除搜索响应。与此类似,新结果已交付,旧结果已清除。这可以从 getAvailability 函数中实现吗?

实现此目标的最佳方法是什么?

最佳答案

解决方案:

感谢@Daniel Beck 建议调用 generateRoomTypeObject 函数并为其提供一个空对象 - 为他的评论 +1。

这在我的 generateRoomTypeObject 函数中触发了一个未定义的错误,我在该函数中运行了一些长度检查(有道理,因为对象是空的 - 所以没有什么可以进行长度检查)。

我通过处理未定义的异常并将 searchResponse 设置为空对象来处理错误。

  var generateRoomTypeObject = (searchResponse) => {
var ratePlans = searchResponse.ratePlans,
errors = searchResponse.error,
roomTypes = [],
ignoreBiggerRooms = false;
rawRoomsObjs = [];
if (angular.isUndefined(errors)) {
// Iterate over the rate plan
if(ratePlans === undefined){
//generateRoomTypeObject -- Handle undefined by creating new object
searchResponse = {}
}else{
for (var i = 0; i < ratePlans.length; i++) {
var ratePlan = ratePlans[i],
rooms = ratePlan.rooms;
// Iterate over the rooms and add rooms to room object. Also keep a list of room types.
for (var j = 0; j < rooms.length; j++) {
//Stuff here
}
}
}
}

关于javascript - 清除 JS 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35033076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com