CoffeeScript中的类

时间:2013-06-03 00:51:17

标签: class coffeescript phantomjs

我在CoffeeScript上有一些代码(在PhantomJS下运行):

class Loadtime
  constructor: ->
    @page = require('webpage').create()

  check: (uri) ->
    time = Date.now()
    @page.open uri, (status) ->
      console.log 'foo'
      if 'success' is status
        time = Date.now() - time
        return time
      else
        return "FAIL to load #{uri}"

loadtime = new Loadtime()
console.log loadtime.check('http://example.com') # undefined
phantom.exit()

类有构造函数和一个公共方法 行@page.open uri, (status) -> ...必须调用回调函数,但不调用它(行console.log 'foo'不执行)。 为什么呢?

1 个答案:

答案 0 :(得分:3)

您正在立即呼叫phantom.exit,因此没有时间加载网页。在check回调结束时调用的open函数添加回调,并在传递给phantom.exit的回调中调用check

class Loadtime
    constructor: ->
        @page = require('webpage').create()

    check: (uri, cb) ->
        # ...
        @page.open uri, (status) ->
            # ...
            cb()

loadtime = new Loadtime
loadtime.check 'http://www.example.com/', (time) ->
    console.log time
    process.exit()