gpt4 book ai didi

javascript - 为什么我的方法没有返回对象

转载 作者:行者123 更新时间:2023-12-03 08:54:56 25 4
gpt4 key购买 nike

我的 ajax 响应是正确的,但我无法将响应对象返回到我的方法调用。问题出在 if 语句的第一部分。这是我第一个尝试 OOP 的项目。请让我知道如何解决这个问题,并且非常欢迎任何其他 OOP 代码建议。

$("#search-btn").on('click', function(e) {
e.preventDefault();
searchTerm = $("#search-input").val();
var params = {'q': searchTerm, 'limit': 13};
var url = "https://api.twitch.tv/kraken/search/" + searchType + "?";

/*===*/ if(searchType === "games") {
url = "https://api.twitch.tv/kraken/search/games?type=suggest";
var gamesSearch = new TwitchApiCall(searchType, searchTerm, params, url);
var data = gamesSearch.apiCall();//How do i get response from api call here?=====
console.log(data);//returns undefined================ /*===*/

//will change these when above works=====================
} else if (!searchType || searchType === "channels") {
var defaultSearch = new TwitchApiCall(searchType, searchTerm, params, url);
defaultSearch.apiCall();
displaySearchResults(defaultSearch.response.channels);

} else {
var streamSearch = new TwitchApiCall(searchType, searchTerm, params, url);
streamSearch.apiCall();
displaySearchResults(streamSearch.response.streams);
}
});
}

function TwitchApiCall(searchType, searchTerm, params, url) {
this.params = params;
this.url = url;

this.apiCall = function() {
$.ajax({
url: this.url,
data: this.params,

/*===*/ success: function (response) {

next = response._links.next;
prev = response._links.prev;
console.log(response);//returns the object i want==================
}
}); /*===*/

$("#page-title").html("Twitch.tv/" + searchType + "/" + searchTerm);
$("#sort-pop").addClass('active');
};
}

提前致谢

最佳答案

问题的一部分是这个问题可能不太适合您正在尝试的 OOP 类型。或者至少可能没有什么理由用 Twitch 的东西来制作一个物体。

这未经测试,但看起来可能可以,而且代码更简洁:

$("#search-btn").on('click', function(e) {
e.preventDefault();
searchTerm = $("#search-input").val();
var params = {'q': searchTerm, 'limit': 13};
var url = "https://api.twitch.tv/kraken/search/" + searchType + "?";

if (searchType === "games") {
url = "https://api.twitch.tv/kraken/search/games?type=suggest";
callTwitch(searchType, searchTerm, params, url, function(data) {
console.log(data);
})
} else if (!searchType || searchType === "channels") {
callTwitch(searchType, searchTerm, params, url, function(data) {
displaySearchResults(data.channels);
});
} else {
callTwitch(searchType, searchTerm, params, url, function(data) {
displaySearchResults(data.streams);
});
}
});


function callTwitch(searchType, searchTerm, params, url, callback) {
$.ajax({
url: url,
data: params,
success: function (response) {
next = response._links.next;
prev = response._links.prev;
callback(response);
}
});

$("#page-title").html("Twitch.tv/" + searchType + "/" + searchTerm);
$("#sort-pop").addClass('active');
}

它缺少错误处理。如果 AJAX 调用有错误数据会发生什么?如果不回来怎么办?但它应该能让你继续前进。

关于javascript - 为什么我的方法没有返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32545210/

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