2016-12-15 4 views
0

コールバック関数でどこが間違っているか教えていただけますか? チェックする関数にパラメータを渡す必要があります。チェックが完了すると、trueまたはfalseが返されます。2つのパラメータでコールバックES6 Arrow関数Angular2

CheckPlayer(cb,player){ 
    if(player >0){ 
     console.log("true"); 
     cb(true); 
    } 
    else{ 
     console.log("False"); 
     cb(false); 
     } 
} 

//This comes up with many errors 
//The main typescript error says: ',' expected 
CheckMe(){ 
    player=10; 
    isGreat:Boolean; 
    this.CheckPlayer((isGreat,player) => { 
     if(isGreat) 
     console.log("Truth"); 
     else 
     console.log("Fase"); 
    }); 
    } 
+0

になります。 コールバックを最初のパラメータとして渡しています。次に、コールバックにする必要がある2番目のパラメータが定義されていません。 – carmouche

+0

最初に構文エラーを取り除きます。 – Pointy

+0

@carmouch okay私は2つのスイッチを入れましたが、それでも同じエラーです –

答えて

2

署名を見

CheckPlayer(cb,player){ 

あなたが合格する必要がある2つの異なる引数があります。 1つはコールバックで、もう1つはプレーヤーです。 1つの引数、コールバック、およびコールバックパラメータとしてプレーヤーを追加しようとしています。それはどのように動作するのではありません。

シンプルは通常、あなたが最後のパラメータとしてコールバックを持っていますが、コンマ

this.CheckPlayer((isGreat) => { 
    if(isGreat) 
    console.log("Truth"); 
    else 
    console.log("Fase"); 
}, player); 

で区切って、ちょうどあなたが他の引数は、希望のように、CheckPlayerの引数としてコールバックやプレイヤーを渡します。それはちょうどあなたが)this.checkPlayer(への最初のパラメータを渡していないクリーンな探してコードを

CheckPlayer(player, cb){ 


this.CheckPlayer(player, (isGreat) => { 
    if(isGreat) 
    console.log("Truth"); 
    else 
    console.log("Fase"); 
}); 

Playground

+0

試しても同じエラーが表示されます関数を呼び出します。 –

+0

'CheckMe'メソッドの先頭で' player'と 'isGreat'の変数に' let'または 'var'を使う必要があります。それは私が得ている唯一のエラーです –

+0

これはちょうど私のために働いていなかった何らかの理由でええ。私は本当に感謝しますが、ありがとうございます、私は代わりに約束を使用して終了しました –

関連する問題