Это странная проблема. У меня есть клиентский объект, который я создаю с помощью публичных/частных членов Crockford-esque:
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 до возвращения нового объекта "тот" (который сигнализирует готовому клиенту). Данные возвращаются асинхронно (очевидно), и я устанавливаю логические переменные, чтобы указать, когда каждый удаленный ресурс вернулся.
Я подумал о том, чтобы сделать что-то вроде следующего:
return whenInitialized(function() { return that; });
Функция whenInitialized возвращает значение true или нет для обоих логических флагов. Я бы использовал это с комбинацией setInterval, но я уверен, что это не сработает.
Поблагодарю ваши предложения.