【发布时间】:2014-10-06 03:04:14
【问题描述】:
我有一个循环遍历内容并回调结果的函数。然后我将该结果添加到并发为 1 的异步队列中。然后我使用提供的内容发出请求并将结果流式传输到文件。但是由于某种原因,队列似乎在三个电话后挂断了,我不知道为什么。
var async = require('async');
var request = require('request');
var queue = async.queue(function (url, callback) {
var file = fs.createWriteStream('./images/' + url.split('/')[5])
var image = request(url);
image.pipe(file);
file.on('close', function() {
callback('done')
})
},1);
getUrls(query, function(e, url) {
queue.push(url, function(data) {
console.log(data)
});
});
queue.drain = function() {
console.log('all items have been processed');
}
Assume all files are just random images like this
http://pandodaily.files.wordpress.com/2014/03/google-in-bed-w-mercenaries-n-military-e1395865855795.jpg?w=900&h=499
还假设getUrls 正在向队列中吐出 5 - 10 个 url。
所以基本上,前几个请求通过并通过管道传输到文件,但之后由于某种原因挂起并且永远不会达到排水功能。
【问题讨论】:
标签: javascript node.js asynchronous request