У меня 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
Спасибо, но я не смог найти ответ здесь. У меня есть 2 функции getJSON. $ (float) .html должен ждать первый в getTweetReply. –
- это 'id_str', отправленный в запросе« details »тот же идентификатор, что и тот, который был отправлен в запрос« получить ответ »? – Alnitak