我想要实现的是解析给定的网站并将其标题写入titles.txt。我使用请求模块获取网站,使用干杯获取标题。
我正在使用问:模块创建以下两个承诺:
readTitle
var readTitle = function(url) {
var deferred = Q.defer();
request({
url: url
}, function(err, response, body) {
var $ = cheerio.load(body);
deferred.resolve($("title").text());
});
return deferred.promise;
};writeTitle
var writeTitle = function(title) {
var deferred = Q.defer();
fs.appendFile('titles.txt', title + "\n", function() {
deferred.resolve();
});
return deferred.promise;
};我期望下面的脚本将Google和Stack Overflow写到文本文件中:
readTitle('http://www.google.com')
.then(writeTitle)
.then(readTitle('http://www.stackoverflow.com'))
.then(writeTitle);但我真正得到的是:
Google
undefined我做错什么了?
发布于 2014-06-19 00:13:20
then需要传递一个函数而不是一个值。
.then(function() {return readTitle('http://www.stackoverflow.com'); })
.then(writeTitle);https://stackoverflow.com/questions/24296606
复制相似问题