2016-12-15 38 views
0

有人能告訴我我的回調函數出錯了嗎? 我需要傳遞一個參數給函數來檢查它是否完成檢查,並返回true或false。用兩個參數回叫ES6箭頭函數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

你是不是傳遞的第一個參數this.checkPlayer(); 您將回調作爲第一個參數傳遞,然後應該是回調的第二個參數未定義。 – carmouche

+0

首先擺脫語法錯誤。 – Pointy

+0

@carmouch好吧我切換了兩個,但仍然是相同的錯誤 –

回答

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

+0

我仍嘗試調用該函數。仍然表示期待''' –

+0

您需要在'CheckMe'方法的頂部使用'let'或'var'作爲'player'和'isGreat'變量。這是我得到的唯一的錯誤 –

+0

是的,由於某種原因,這只是不適合我。謝謝,雖然我很欣賞它,但我最終只是用諾言代替 –

相關問題