0

関数内で変数を操作しようとしています。しかし、変数が関数の外で宣言されていても、関数を終了すると値を忘れているようです。

本質的なコード:

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 は facebook からデータを取得します。両方の oajax メソッドからのデータを含む変数を作成したいと考えています。

実際のコード: http://eco.nolgren.se/demo/resihop/#

4

1 に答える 1

2

この問題は、success関数が将来の任意の時点で実行される可能性があります。関数が実行されたことを知っposts後で具体的にアクセスしない限り、関数とアクセスのタイミングに完全に依存する未定義の結果を受け取ることになります。success

最善の方法は、success 関数内で必要な作業を行うか、jQuery の.whenfunctionのようなものを使用して、これを正しく処理することです。

于 2012-06-05T22:51:32.820 に答える