我想通过构建一个随机报价机来学习JS,但这个问题一直在窃听我。我看到了其他答案,但由于缺乏背景,我实在无法理解它们。任何帮助将不胜感激。该代码是:如何在执行后续代码之前先执行函数调用?
$(document).ready(function() {
$("#btn").click(function() {
getQuote(); //This should execute first, then the next lines
var quoteData = jSonify();
var quote = quoteData[0];
var author = quoteData[1];
console.log(quote);
console.log(author);
console.log("Button Clicked");//This Should execute last.
});
//Get them quotes
function getQuote() {
$.ajax({
url: 'https://andruxnet-random-famous-quotes.p.mashape.com/?cat=famous',
type: 'GET',
data: {},
datatype: 'json',
success: function (data) { jSonify(data); },
error: function (err) { alert(err); },
beforeSend: function (xhr) {
xhr.setRequestHeader("X-Mashape-Authorization", "qKPbfOzWKemsh2qi30QgbOA1WufXp1ok1NsjsnAkvh6yVJfaAk");
}
});
}
//Convert to jSon
function jSonify(rawData) {
var jSonified = jQuery.parseJSON(rawData);
var quote = jSonified.quote;
var author = jSonified.author;
console.log(quote);
console.log(author);
return [quote, author];
}});
当我尝试解决这个问题时,我学到了回调函数,但不知何故,我无法弄清楚如何在我自己的代码中使用它。谢谢你教我。我现在就试试这个,希望能够把握这个回调函数的概念。 –
我终于明白了。我使用另一个函数作为参数调用getQuote,当getQuote运行包含对参数的调用的“成功”部分时,它运行参数本身就是一个函数,这正是我所需要的。哇,整洁!再次感谢你。 –