【发布时间】:2015-12-22 02:40:29
【问题描述】:
在我的 node.js 项目中,我需要进行迭代 API 请求,因此我使用的是 async.each 方法。
控制台抱怨 url 未定义,我理解这一点,因为我只声明了 urls,它是一个 url 数组。
我只是不确定如何将请求模块中的 request() 放在 async.each 中。为了满足 async.each() 我将 urls 作为第一个参数,但 request() 本身需要一个查询字符串参数,即 url。
我还使用下划线中的 _.extend 来合并两个响应,但我不确定我目前的位置是否正确。
有人可以指点我正确的方向吗?
var urls = [];
Object.keys(result.items).forEach(function(item) {
urls.push("https://www.googleapis.com/youtube/v3/videos?part=contentDetails&id=" + result.items[item].contentDetails
.videoId + "&key=xxx");
})
async.each(
urls,
request(url, function(err, response, body) {
if (err) {
console.log(err);
return;
}
body = JSON.parse(body);
}),
function() {
var extended = _.extend(result, body);
getVideoDetailsCallback(null, extended)
});
【问题讨论】:
标签: javascript node.js asynchronous