Javascript 承诺不解决-Mocha+CasperJS+Q
我试图在我的mocha casperjs测试中使用Q promise库。我想知道是否有人能帮助我理解为什么下面的代码无法解析?代码是用coffeescript编写的,并使用mocha casperjs启动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.
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的内置承诺支持?