2015-12-12 40 views
1

我是新來的咖啡和我卡在一個容易的問題,我感到羞愧:S ...Coffeescript,在這種情況下如何傳遞函數中的變量?

你會如何通過變量query函數內?

query = 'select * from blabla' 
pg.connect conString, (err, client, done) -> 
      client.query query, (err, result) -> 
        if err 
         console.log "error" 
        else 
         console.log "success" 
        done() 
+0

你是什麼意思的「內傳遞」嗎?通過什麼?回調?它在那裏已經可見,因爲它在詞彙範圍內。 –

回答

1

發現此問題。 真正的問題可能是這個名字query是太普通了:解決與改變變量的名稱/ ..

theQuery = 'select * from blabla' 
pg.connect conString, (err, client, done) -> 
      client.query theQuery, (err, result) -> 
        if err 
         console.log "error" 
        else 
         console.log "success" 
        done() 
+0

我不明白爲什麼改變這個變量名會影響任何東西。 –

+0

它解決了這個問題。我認爲它可能已經被使用或「查詢」特殊的命名。 – xunga

+1

coffeescript隱藏提升,因此局部變量覆蓋全局變量。您需要更加小心coffeescript中的變量命名而不是javascript,尤其是當您無法看到您實際覆蓋全局變量時。有關更多詳細信息,請參閱http://coffeescript.org/#lexical-scope –

相關問題