Это странная проблема. У меня есть клиентский объект, который я создаю с использованием открытых / закрытых членов 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 возвращает значение истинности обоих логических флагов. Я бы использовал это с комбинацией setInterval, но я уверен, что это не сработает.
Буду признателен за ваши предложения.