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');