我有2種方法。第二個叫第一個。當我把一個警報函數放入第一個函數時,我可以看到返回值。但第二個函數將該值視爲未定義。我無法理解爲什麼2.一個人無法處理價值?jquery函數不等Javascript結果的結果爲什麼?
function getTweetReply(id_str) {
$.getJSON("get_tweet_reply.php", {id_str: id_str}, function(json) {
tweet_relpy = '<blockquote>'+json.results[0].text+'</blockquote>';
alert(tweet_relpy); // --> I can see the result
return tweet_relpy;
});
}
$(document).on("click", ".tweet",function(){
var id_str = $(this).attr("id");
$.getJSON("get_tweet_details.php", {id_str: id_str}, function(json) {
tweet = '<img src="'+json.results[0].profile_image_url+'"><br>\
' + json.results[0].from_user + '<br>\
' + json.results[0].from_user_name + '<br>\
' + getTweetReply(json.results[0].id_str) + '</b><br>'; // --> undefined
$("#float").html('<div id="replybox">'+ tweet +'</div>');
});
});
你很可能是能夠看到的結果,但'return'價值越來越被忽略,因爲回調是通過事件循環異步調用,而不是通過原始的調用函數。 – Alnitak 2013-05-12 13:49:58
謝謝,但我無法在這裏找到答案。我有2 getJSON函數。 $(float).html必須等待getTweetReply中的第一個 – 2013-05-12 13:53:31
是在「details」查詢中發送的'id_str'查詢與發送給「get reply」查詢的ID相同的ID嗎? – Alnitak 2013-05-12 13:57:56