如何使用CoffeeScript设置setInterval?

时间:2011-09-07 16:55:21

标签: javascript coffeescript

我的JavaScript如下:

var util = require('util');
EventEmitter = require('events').EventEmitter;

var Ticker = function() {
      var self = this;
      setInterval( function() {
        self.emit('tick');
      }, 1000 );
    }

什么是等效的CoffeeScript?

1 个答案:

答案 0 :(得分:33)

util = require 'util'

EventEmitter = require('events').EventEmitter

Ticker = ->
  self = this
  setInterval ->
    self.emit 'tick'
  , 1000
  true

通过将逗号与要传递的函数对齐来添加第二个参数,因此它知道第二个参数即将到来。

它也返回true而不是setInterval,虽然我个人看不到返回setInterval的优势。


这是一个带有粗箭头的版本(请参阅注释)和解构赋值(请参阅其他注释)。另外,返回setInterval而不是显式返回true。

util = require 'util'

{EventEmitter} = require 'events'

Ticker = ->
  setInterval =>
    @emit 'tick'
  , 1000