2016-09-29 8 views
-2

データを配列に配置するためにコールバック関数を使用しようとしています。コールバック関数 'myCallback'を呼び出そうとすると、TypeError: callbackFunction is not a functionというエラーが発生します。次に、コードの例を示します。functionNameは関数ではありませんか?

var content = []; 

var function1 = function(){ 
    var function2 = function(){ 
    query = function(){ 
     //CAML code 
    } 
    success = function(callbackFunction){ 
     callbackFunction("text");// TypeError: callbackFunction is not a function 
    } 
    failure = function(){ 
     //Error code 
    } 
    } 
    function2(); 
    runQuery(one, query, success, failure, two);//Main function 
} 

function1(); 

function callbackfunction(data){ 
    content.push(data) 
} 

私は次のとおりです。THISスタックオーバーフローの答え。たぶん私は混乱している何かを取得している?なぜそれが明らかにコードで定義されているときに私にエラーを投げているのかわからない。

ありがとうございます。

+0

よくfunction2()内で定義し、function2は決して実行しません...パターンは意味をなさない... – epascarello

+0

これは実行され、私の例はそれだけです。例。それは同じように見えないかもしれませんが、それは実行されます。 – IE5Master

+0

あなたの例ではないとそれは私たちが外出する必要があります... – epascarello

答えて

2

あなたは、変数を再定義し、あなたがそれを渡す必要があります。

var content = []; 

var function1 = function(callbackfunction){ 
    var function2 = function(){ 
    query = function(){ 
     //CAML code 
    } 
    success = function(){ 
     callbackFunction("text");// TypeError: callbackFunction is not a function 
    } 
    failure = function(){ 
     //Error code 
    } 
    } 
    function2(); 
    runQuery(one, query, success, failure, two);//Main function 
} 

function1(callbackfunction); 

function callbackfunction(data){ 
    content.push(data) 
} 

そして、それはあなたの実際のコードである場合は、複数の呼び出しを行う場合は、グローバル変数に問題があります。

0

success機能にcallbackFunctionパスという名前の変数があらゆるタイプが、機能を有しており、呼び出すことはできません。

0

あなたのコードは完全ではありませんが、私はその問題が浮上していると推測することができます。あなたは成功コールバックからスコープされたメソッドを呼び出そうとしていますが、その宣言はローカル変数でオーバーハンドしています。

success = function(callbackFunction){ 
    callbackFunction("text");// TypeError: callbackFunction is not a function 
} 

このようにしてみてください。

success = function(){ 
    callbackFunction("text");// TypeError: callbackFunction is not a function 
} 

も読みやすくするために、あなたのコードの先頭になるように、コールバックの宣言を移動します。

関連する問題