我想知道是否存在允许在 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');