Сообщение от kostyanet
|
Обычно делается так
var stat = new Stat;
ожидание команды
поступила команда
получение данных соотв команде
получили данные
stat.setData(new Date()).write();
ожидание команды
команда, нужны данные соотв команде, получили данные
stat.setData(new Date()).write();
ожидание команды...
Ну или так
stat.write(data); или не так?
|
Существует конструктор (для удобства я буду называть класс) Source, в котором регистрируется множество объектов, реализующих Stat, именно он (объект source) вызывает методы отрисовки в массиве конечных объектов и он не знает и знать не должен реализацию отрисовки. Соответственно мой метод write должен забрать из объектов реализующих класс Stat свойство data, которое в моем случае может быть как получаемое по ajax, так и статическое, например Дата-время или любое другое значение, и отрисовать. Но! Когда я забираю данные , то мой метод write не ждет естественно , а забирает ровно то, что есть на текущий момент в ссылке на переменную и если там аякс - то он не дожидается результата. И тут вопрос, как же сделать так, чтоб одним методом можно было забрать данные и если они получаемые асинхронно, то метод отрисовки ждал бы сначала результата, а потом продолжал бы работать (естественно не вешал бы остальной код).
Один товарищ тут подсказал про jQuery Deffered
https://api.jquery.com/category/deferred-object/ смотрю читаю. Думаю это решит вопрос.