我有一个应该在另一个之后运行的函数,例如:
function cutTomatoesAlone(Kg){
// slice my stuff
}
function cookTomatoes(Minutes){
// boil my stuff
}
我这样称呼他们:
cutTomatoesAlone(15) // 15kg, need 3 hours!
cookTomatoes(10); // need 10 minutes
但是cookTomatoes(10)在我的cutTomatoesAlone(15)之前完成。
如何先运行
cutTomatoesAlone(15)
,完成后如何运行cookTomatoes(10)
?编辑:
cutTomatoesAlone()
加载外部JSON。 cookTomatoes(10)
继续努力。 最佳答案
Learn about promises and deferred objects。 jQuery中的每个Ajax函数都返回一个promise,因此您可以轻松地链接函数调用。
例如:
function cutTomatoesAlone(Kg) {
return $.getJSON(...); // return the promise provided by $.getJSON
}
// called as
cutTomatoesAlone(15).then(function() { // attach callback
cookTomatoes(10);
});
在进行Ajax调用的情况下,一旦成功检索到响应,就可以解决承诺。