1

私はjavascriptでオブジェクトを作成しています:

    var t = null;
            $.getJSON('http://localhost:53227/Home/GetData', function (data) {
                alert(data);
                t = data;
            });
            alert(t);

データをアラートすると、オブジェクトが返されます。t をアラートすると、null になります。

返されたデータに「t」を設定する方法を教えてください。

4

1 に答える 1

7

これは期待どおりに機能します。問題はt設定されていないことではなくalert(t)、コールバックが実行される前に実行していることですgetJSONalert(t)直後にやってみるt = data;

つまり、現在の操作順序は次のとおりです。

  1. t = null に設定
  2. サーバースクリプトを呼び出す
  3. alert(t) --> t はまだ null です!
  4. (しばらくして) JSON 応答を受け取る
  5. アラートデータ
  6. t = データに設定

...ご覧のとおり、ステップ 3 では 't' は null のままです。代わりにこれを試してください:

var t = null;

$.getJSON('http://localhost:53227/Home/GetData', function (data) {
    alert(data);
    t = data;
    alert(t);
});

乾杯

于 2012-05-09T17:16:53.920 に答える