javascript - NodeJS。异步。平行线。相同的功能

标签 javascript node.js asynchronous

我需要解析 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/

相关文章:

javascript - Node.js 堆内存不足

javascript - 处理 Node 的异步特性 - writeFile 回调

c++ - Boost Asio connect_async 从不调用处理程序

javascript - AWS lambda : test event configuration: Error in JSON event

node.js - 如何在 Mongoose 的数组中使用不同类型的模式?

asynchronous - log4j2 : Async logger is NOT starting

javascript - 不要嵌套三元表达式 - 替代

javascript - 在 mongo 和 Node 的大集合上迭代游标不返回所有结果?

Javascript:过滤掉一组对象并根据键而不是值进行选择

javascript - gulpfile.js 中出现意外的 token .pipe