【问题标题】:What is the equivalent of this Coffescript code in Javascript? [closed]Javascript中这个Coffescript代码的等价物是什么? [关闭]
【发布时间】:2013-04-07 01:29:55
【问题描述】:
phantom = require 'phantom'

phantom.create (ph) ->
  ph.createPage (page) ->
    page.open "http://www.google.com", (status) ->
      console.log "opened google? ", status
      page.evaluate (-> document.title), (result) ->
        console.log 'Page title is ' + result
        ph.exit()

我尝试使用这个网站,但它似乎不是很准确。它到处都有回报。 http://js2coffee.org/#coffee2js

【问题讨论】:

  • 如果您没有在 js 中显式返回某些内容,js2coffee 假定返回值无关紧要(因为您必须显式不在 coffeescript 中返回值)。

标签: javascript coffeescript


【解决方案1】:

更新:再看一遍,其中一些回报似乎是虚假/冗余的。这是因为 Coffeescript 总是返回函数中最后一条语句的结果(这样您就可以保存 return 关键字),即使在您不会在 Javascript 中返回任何内容的情况下(编译器在这里无法知道您的意图) .这可能是不必要的,但如果没有人使用返回值,它也没有什么害处。如果返回“无”很重要,您也可以明确地这样做。


你可以编译它,看看它的结果:

var phantom;

phantom = require('phantom');

phantom.create(function(ph) {
  return ph.createPage(function(page) {
    return page.open("http://www.google.com", function(status) {
      console.log("opened google? ", status);
      return page.evaluate((function() {
        return document.title;
      }), function(result) {
        console.log('Page title is ' + result);
        return ph.exit();
      });
    });
  });
});

它到处都有回报。

嗯,你在那里定义的每个函数都有一个返回值。

Coffeescript 的主要动机之一是能够用更少的样板编写所有这些回调函数。

无论哪种方式,编译器都是“准确的”。

【讨论】:

    【解决方案2】:
    var phantom = require('phantom');
    
    phantom.create(function(ph)) {
    
        ph.createPage(function(page) {
    
            page.open("http://www.google.com", function(status) {
    
                console.log("opened google? ", status);
    
                page.evaluate(function() { return document.title; }, function() {
    
                    console.log('Page title is ' + result);
                    ph.exit()
    
                }
            });
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2019-08-14
      • 2013-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-04
      • 2012-06-03
      相关资源
      最近更新 更多