Javascript 承诺不解决-Mocha+CasperJS+Q

Javascript 承诺不解决-Mocha+CasperJS+Q,javascript,promise,mocha.js,casperjs,q,Javascript,Promise,Mocha.js,Casperjs,Q,我试图在我的mocha casperjs测试中使用Q promise库。我想知道是否有人能帮助我理解为什么下面的代码无法解析?代码是用coffeescript编写的,并使用mocha casperjs启动 Q = require('./q') casper.errorHandler = -> @echo @ throw new CasperError 'Promise Failed' ## Promise version of casper.open() casper.

我试图在我的mocha casperjs测试中使用Q promise库。我想知道是否有人能帮助我理解为什么下面的代码无法解析?代码是用coffeescript编写的,并使用mocha casperjs启动

Q = require('./q')
casper.errorHandler = ->
    @echo @ 
    throw new CasperError 'Promise Failed'

## Promise version of casper.open()
casper._open = (url) ->
    deferred = Q.defer()
    @open url, deferred.resolve
    return deferred.promise

describe 'Main Test', ->
    before ->
        casper.start()
        console.log 'casper started'
    it 'Test Case 1', (done) ->
        casper._open('http://google.com')
        .then ( ->
            'Google'.should.matchTitle
            done()), casper.errorHandler()

调用错误处理程序时,casper回显[object casper],当前约为:blank,这意味着页面尚未加载。但我认为promise函数会在进入之前等待。然后?

我不知道摩卡,但如果您使用的是标准CasperJS,你需要调用casper.run来真正开始执行。是的,我应该提到这一点,但mocha casper处理这一部分。不要使用done mocha已经支持承诺。他们的网站上说了这一点,但我不知道如何使用它。它是否有我不需要使用Q的内置承诺支持?