2012-06-05 4 views
0

Я пытаюсь манипулировать переменной внутри функции. Но он, кажется, забывает значения после выхода из функции, хотя переменная объявляется вне функции.поддерживать значение переменной вне функции в javascript?

Эфирное код:

var posts = {};     

      // Perform a data request 
      // skjutsgruppens-page 
      $.oajax({ 
       url: "https://graph.facebook.com/197214710347172/feed?limit=500", 
        *SNIP* 
        success: function(data) { 
        $.extend(posts, data); 
       } 
      }); 


      // Gruppen 
      $.oajax({ 
       url: "https://graph.facebook.com/2388163605/feed?limit=500", 
       *snip* 
       success: function(data) { 
        $.extend(posts, data); 
       } 
      }); 

В oajax retrievies данные из Facebook. Я хочу создать переменную, содержащую данные из обоих методов oajax.

Фактический код: http://eco.nolgren.se/demo/resihop/#

+0

nope, fear not:/ – Himmators

+0

Это просто стало намного страннее ... Кажется, что метод расширения применяется только при перезагрузке страницы. WTF? – Himmators

ответ

2

Проблема, скорее всего, что функция success выполняет в произвольный момент времени в будущем - если вы специально не получить доступ к posts после знают функция success была выполнена, вы получите неопределенные результаты, полностью зависящие от функций и времени доступа.

Наилучший подход - это правильно отреагировать, выполнив необходимую работу внутри функции успеха или используя что-то вроде jQuery's .when function.

+0

Вы правы, успех выполняется, когда я получаю ответ. вот когда я хочу распространять сообщения с данными. Разве это не то, что я делаю? – Himmators

+0

@KristofferNolgren Вы рассказываете нам - в функции успеха после того, как вы вызываете 'extend', это данные в объекте? Являются ли данные в формате, подходящем для использования '.extend'? В какой момент вы получаете доступ к «сообщениям», а данные - «нет»? –

+0

похоже, что данные в сообщениях являются данными последней загрузки страницы и чередуются между этими двумя объектами. Я действительно не понимаю этого ... – Himmators

Смежные вопросы