【发布时间】:2017-01-31 15:11:57
【问题描述】:
我正在尝试构建一个小脚本来废弃一些数据。我对 javascript 有一些基础知识,但是我对所有异步回调或承诺的东西有点迷失了。这是我现在拥有的:
url = "http://Blablablabla.com";
var shares = function(req, res) {
request(url, function (error, response, body) {
if (!error) {
var $ = cheerio.load(body),
share = $(".theitemIwant").html();
return res.send(url + ":" + share);
} else {
console.log("We've encountered an error: " + error);
}
})
}
所以这段代码一切正常。我想做的是:
- 使用 url 数组
var urls = [url1,url2,url3,etc...] - 将我的报废数据存储到另一个数组中,类似于
data = [{url: url1, shares: share},{url: url2, shares: share},etc...]
我知道我需要使用这样的东西data.push({ urls: url, shares: share})})
并且我知道我需要遍历我的第一个 url 数组以将数据推送到我的第二个数据数组中。
但是我有点迷失了request 方法以及在我的情况下我应该处理异步问题的方式。
谢谢!
编辑#1:
我试过这个来使用承诺:
var url = "www.blablabla.com"
var geturl = request(url, function (error, response, body) {
if (!error) { return $ = cheerio.load(body) } else
{ console.log("We've encountered an error: " + error); }
});
var shares = geturl.then( function() {
return $(".nb-shares").html();
})
但出现以下错误geturl.then is not a function
【问题讨论】:
-
我不明白您返回的响应是什么...
-
开始简单并承诺
request电话。 -
@Bergi 我更新我的帖子。
-
@SimonBreton stackoverflow.com/q/22519784/1048572
标签: javascript node.js callback promise