Почти все функции в моей программе имеют какой-то асинхронный вызов, но все они полагаются на некоторые предыдущие результаты функции. Из-за этого я жестко закодировал следующий вызов функции в каждый отдельный:
function getStuff() {
$.ajax({
...
success: function(results) {
// other functions involving results
getMoreStuff(results);
}
});
}
function getMoreStuff(results) {
$.ajax({
...
success: function(moreResults) {
// other functions involving moreResults
doSomethingWithStuff(moreResults);
}
);
}
И так далее. Это большая цепочка, где каждая функция вызывает следующее. Хотя это работает в рамках программы, она делает каждую функцию бесполезной индивидуально.
Я немного потерял, как избежать этой проблемы. Я не мог понять, как использовать общие функции обратного вызова, потому что когда я выполняю вызовы функций, он заканчивается так (используя вышеописанные функции):
getStuff(function() {
getMoreStuff(results, doSomethingWithStuff);
};
Но тогда "результаты" еще не определены.
Решение кажется очевидным, я просто немного плотно об этом. Извините!