使用两个参数ES6 Arrow Function Angular2回调

时间:2016-12-15 00:17:20

标签: javascript angular typescript callback ecmascript-6

有人能告诉我回调函数出错了吗? 我需要将一个参数传递给要检查的函数,当它完成检查时它会发回true或false。

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");
     });
   }

1 个答案:

答案 0 :(得分:2)

查看签名

CheckPlayer(cb,player){

您需要传递两个不同的参数。一个是回调,另一个是玩家。您正在尝试仅传递一个参数,即回调,并将播放器添加为回调参数。这不是它的工作方式。

简单地将回调和播放器作为参数传递给CheckPlayer,就像用其他任何参数一样,用逗号分隔

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

虽然通常你将回调作为最后一个参数。它只是使代码更清晰

CheckPlayer(player, cb){


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

Playground