【问题标题】:Pass a list of named functions into function in coffeescript将命名函数列表传递给coffeescript中的函数
【发布时间】:2014-11-25 15:57:53
【问题描述】:

在 API 文档中有一个 sn-p:

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();
});

我需要这个,但在一个咖啡脚本项目中。我试图将其重写为咖啡脚本,但没有成功。即使我让js2coffe 完成这项工作,我也会从有效的 javascript 中得到一些无效的咖啡脚本:

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

【问题讨论】:

    标签: javascript coffeescript casperjs


    【解决方案1】:

    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 中获得相同的效果。

    【讨论】:

    • 它们主要用于文档目的,但在某些情况下会在出现错误或启用详细日志记录时打印出来。
    • @ArtjomB。但就像我说的,CoffeeScript 不支持它们,所以除非你想用反引号做不自然的事情,否则你会很不走运。如果您对此有疑问,那么 CoffeeScript 不适合您。
    • @muistooshort 有时您自己不会选择咖啡脚本。例如当您修复现有咖啡脚本应用程序中的错误时;)但无论如何这不是这里的问题..您的答案是正确的。谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    相关资源
    最近更新 更多