我需要解析 10 个网页,并捕获它们的主要内容。所以我使用 Node 可读性并且不想重写相同的函数(仅 url 更改)10 次。最后我必须计算内容长度。我如何使用循环或任何其他想法来做到这一点? 现在看起来像:
for(var i=0; i<catchedUrl.length; i++){
var data = {length: 0, count: 0};
(function(i) {
read(catchedUrl[i], function(err, article, meta){
if(err) throw err;
var content = article.content;
content = content.split(' ');
article.close();
data.count += 1;
data.length += length;
// Send data to callback when functions done
});
})(i);
}
最佳答案
您可以使用async
模块来简化循环。另请查看 .bind()
函数 bind documentation
因此这种情况的代码示例可能看起来像这样
var async = require('async');
function step(number, callback) {
[enter code here]
callback();
}
module.exports = (job, done) => {
var _pages = [URLS];
async.eachSeries(_pages, (link, callback)=> {
step(link, callback);
}, ()=> done());
});
};
最诚挚的问候, 叶戈尔
关于javascript - NodeJS。异步。平行线。相同的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34414373/