2011-08-11 2 views
1

私を助けてください! ?。私はただのgetValue()を使用して文字列を返すことができますどのように:(MooTools - 親関数のOnSuccess変数を返す

私は親関数に変数を適用する方法がわからない、私は取得してい頭痛:ここ

<script> 
    function getValue() { 
     new Request.JSON({ 
      data: JSON.encode({ 
       "serviceName": "demoTest", 
       "methodName": "someValue", 
       "parameters": [] 
      }), 
      onSuccess: function(data) { // data = a string with some text 
       var string = data; 
       console.log(string); // returns the string as expected 
      }, 
      url: "gateway/?contentType=application/json" 
     }).send(); 

     return string; // returns undefined 
    } 
</script> 

答えて

1

問題onSuccess(コールバック)関数が呼び出される前に、returnが起動されているということです。コールバック関数を使用する方法もあります。

ここにgetValue関数があります。

function setValue(callback) { 
    new Request.JSON({ 
    ... 
     onSuccess: function(data) { 
      callback(data); 
     }, 
    .... 
} 
ここで

は、コールバック関数です:

var myCallback = function(data) { 
    $("id").set("html", "<p>" + data + "</p>"); 
} 

そして最後にロードされた文書に関数を呼び出す:ええ、私は前にいることをしようと、それは、例えば作品

setValue(myCallback); 
+0

を警告(); $( "id")$( "html"、 "

" + getValue(); + "

");このように解析するには値を返す必要があります。 – headacheCoder

+0

あなたがしたいやり方は、単に働くことができません。 getValueを呼び出すと、jsonリクエストは外部プロセスで実行されています。したがって、コールバック関数を介してのみ応答にアクセスすることができます。私は私の答えを編集しました。 –

+0

ありがとうございました!私は前にそのようなことを試みましたが、それは決して働きませんでした。私は簡単なシミュレーションであなたのスクリプトを試してみました。なぜなら私は今オフィスにいないから、JSONリクエストを実行することはできませんが、私は明日テストします。 – headacheCoder

関連する問題