将命名函数列表传递给coffeescript中的函数

时间:2014-11-25 15:57:54

标签: javascript coffeescript casperjs

在API文档中有一个代码段:

casper.waitFor(function check() {
    return this.evaluate(function() {
        return document.querySelectorAll('ul.your-list li').length > 2;
    });
}, function then() {
    this.captureSelector('yoursitelist.png', 'ul.your-list');
}, function timeout() {
    this.echo("I can't haz my screenshot.").exit();
});

我需要这个,但是在一个coffeescript项目中。我试着把它重写成coffeescript,但它不起作用。即使我让js2coffe完成这项工作,我也会从有效的javascript中获得一些无效的coffeescript:

enter image description here

我不知道如何正确地将命名函数列表传递给另一个函数。

1 个答案:

答案 0 :(得分:2)

CoffeeScript并不真正支持这样的命名函数,请参阅:

这个具体的例子无论如何都不需要它们,看起来他们只是出于文档目的,所以你可以这样写:

check    = -> @evaluate(-> document.querySelectorAll('ul.your-list li').length > 2)
and_then = -> @captureSelector('yoursitelist.png', 'ul.your-list')
timeout  = -> @echo("I can't haz my screenshot.").exit()
casper.waitFor(check, and_then, timeout)
在CoffeeScript中

获得相同的效果。