2015-12-12 2 views
1

Я новичок в coffeescript, и я застрял в легкой проблеме, что мне стыдно: 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 для получения более подробной информации –

Смежные вопросы