Мне было интересно, существует ли шаблон проектирования / каркас, который допускает слабую связь обратных вызовов в jQuery.
По сути, у меня есть вызов ajax, который возвращает настройки, которые потребуются в функциях обратного вызова. У меня есть ряд функций, которые я хотел бы запустить после завершения вызова ajax, но хотел бы избежать выполнения чего-то вроде:
$.getJSON('/webservice/config', function(data) {
functionA();
functionB();
}
Я бы хотел, чтобы он был слабосвязанным. У кого-нибудь есть идеи о том, как это возможно?
Спасибо,
Gearoid.
РЕШЕНИЕ
Вот что я использовал в конце:
function initConfig(callbacks) {
$.getJSON('/webservices/config', function(data) {
$.each(data.config, function(key, value) {
config[data.config[key].paramName] = data.config[key].paramValue;
});
}).done(function() {
//callbacks
callbacks.forEach(function(callback) {
if (eval('typeof ' + callback) == 'function') {
window[callback]();
});
});
}
Мой код тогда довольно слабо связан, поскольку я могу передать любое количество функций обратного вызова исходной функции, и они будут выполняться последовательно, например:
initConfig('setLocationData', 'setUserData');