我在这里遇到一个问题,在 AJAX 的成功方法中,我有一个 if 来查看 Streamer 是否处于事件状态,如果是事件状态,则返回“online.png”,如果不是,则返回“offline.png”。 png”,我的问题是返回结果为“未定义”,但如果我取消注释控制台中的 console.log,我可以在控制台上看到“offline.png”或“online.png”(但返回结果仍为未定义)。 有人已经解决了这个问题吗?谢谢
function checkOnline(nombre){
try {
$.ajax({
type: 'GET',
url: 'https://api.twitch.tv/kraken/streams/' + nombre,
headers: {
'Client-ID': '
},
success: function(data) {
// console.log(data["stream"]);
if (data["stream"] == null) {
return "offline.png";
break;
// console.log("offline.png");
}else {
return "online.png";
break;
//console.log("online.png");
}
},
error: function(data){
alert("Stream not found!");
}
});
} catch (e) {
alert("Conection error, try later... Monkeys are fixing it");
}
}
最佳答案
在此上下文中不需要 return
或 break
。异步请求中无法返回任何内容,并且您没有处于迭代中,因此没有什么可以打破的。
函数 checkOnline 总是会返回 undefined,因为它是异步调用,它无法中断并返回请求的结果。
如果您想对数据执行某些操作,可以直接在回调方法中执行。
关于javascript - 在ajax成功方法中返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48956606/