Подождите, чтобы вернуться из функции javascript, пока не будет выполнено условие

Это странная проблема. У меня есть клиентский объект, который я создаю с помощью публичных/частных членов в ключе Крокфорда:

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, но я уверен, что это не сработает.

Буду признателен за ваши предложения.

10
задан findchris 1 December 2011 в 03:25
поделиться