【问题标题】:CoffeeScript to Node.js Syntax problem of ")"CoffeeScript 到 Node.js 的 ")" 语法问题
【发布时间】:2011-08-30 12:39:05
【问题描述】:

我在第 21 行遇到了“太多”问题我无法将此 Coffee Script 代码编译成 Node.js 关于这些“)”有什么帮助吗? 谢谢

amqp = require('amqp')

class Queue
    constructor: (ip = 'localhost') ->
            @ip = ip
            @receivedObject
            @connection = amqp.createConnection({ host: @ip })

    subscribeTaskQueue: (queueToSubscribe) ->
            self = @
            self.connection.on('ready', ->
                    q = self.connection.queue(queueToSubscribe)
                    q.bind('#')

                    q.subscribe({ ack: true }, (message) ->
                            self.receivedObject = message
                            console.log(self.receivedObject)
                    )
            )

    addTaskToQueue: (queue, objectToSend) ->
            @connection.publish(queue, objectToSend)

module.exports = Queue

【问题讨论】:

  • 我在发帖时解决了我的问题。我使用制表符来缩进代码。为了使我的帖子格式正确,我使用了空格,并且我在不搜索的情况下编译了语法。我再也不会在 CoffeeScript 中使用制表了,我只推荐空格
  • 令人惊讶的是,世界上有多少问题“软制表符,2 个空格”可以解决。

标签: node.js coffeescript


【解决方案1】:

这是 CoffeeScript 的一大亮点:在调用带参数的函数时可以省略括号!这在 Node 中特别好,回调通常是最后一个参数。

像这样:

amqp = require 'amqp'

class Queue

   constructor: (ip = 'localhost') ->
        @ip = ip
        @receivedObject
        @connection = amqp.createConnection { host: @ip } 

   subscribeTaskQueue: (queueToSubscribe) ->
        self = @
        self.connection.on 'ready', ->
                q = self.connection.queue queueToSubscribe
                q.bind '#'

                q.subscribe { ack: true }, (message) ->
                        self.receivedObject = message
                        console.log(self.receivedObject)

   addTaskToQueue: (queue, objectToSend) ->
        @connection.publish queue, objectToSend

module.exports = Queue 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 2012-05-07
    相关资源
    最近更新 更多