为什么在调用函数时不返回值?我已经尝试了回调,我似乎无法让它工作。它允许我使用console.log,但它不会将其返回到tmp
变量。
var URL = "https://api.instagram.com/v1/media/popular?client_id=642176ece1e7445e99244cec26f4de1f";
function getData(){
var tmp;
$.ajax({
type: "GET",
url: URL,
dataType: "jsonp",
success: function(result){
if(result.meta.code == 200){
tmp = result.data;
//console.log(result.data);
}else{
alert('fail');
alert(result.meta.error_message);
}
}
});
return tmp;
}
console.log(getData()); // undefined?
提前感谢!
答案 0 :(得分:0)
ajax方法是异步的。这意味着调用函数将继续,而不必等待ajax调用完成。
这已在更深入地解释,这里: How do I return the response from an asynchronous call?
答案 1 :(得分:0)
我建议您遵循在jQuery中使用Ajax的方法
function removeAttr() {
var i, buttons = document.getElementsByClassName('choice');
for (i = 0; i < buttons.length; i++) {
buttons[i].removeAttribute('class');
}
}
基本上Javascript中的Ajax是异步的。在实际收到请求的结果之前,它不会调用成功或失败方法。