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
答案 0 :(得分:3)
更新:经过第二次查看,似乎其中一些返回是虚假/冗余的。那是因为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的主要推动者之一就是能够以更少的样板编写所有这些回调函数。
无论哪种方式,编译器都是“准确的”。
答案 1 :(得分:1)
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()
}
});
});
});