Это странная проблема. У меня есть клиентский объект, который я создаю с помощью публичных/частных членов в ключе Крокфорда:
var client = function() {
var that, remote_data, other_data;
// add public interface
that.doStuff = function(){...}
// wait for remote resources to load
remote_data = jsonRequest1();
other_data = jsonRequest2();
return that;
};
Проблема, с которой я нахожусь, заключается в том, что мне нужно загрузить некоторые удаленные ресурсы JSON перед возвращением нового объекта 'that' (который сигнализирует о готовом клиенте). Данные возвращаются асинхронно (очевидно), и я устанавливаю логические переменные, указывающие, когда каждый удаленный ресурс вернулся.
Я думал о том, чтобы сделать что-то вроде следующего:
return whenInitialized(function() { return that; });
Функция whenInitialized возвращает, истинны ли оба логических флага. Я бы использовал это с комбинацией setInterval, но я уверен, что это не сработает.
Буду признателен за ваши предложения.