• Node.js 实现并行化流程控制


    下面的程序用于并行统计字数。

    var fs = require('fs');
    var completedTasks = 0;
    var tasks = [];
    var wordCounts = {};
    var filesDir = './text';
    
    function checkIfComplete() {
        completedTasks ++;
        if (completedTasks == tasks.length) {
            for (var index in wordCounts) {
                console.log(index + ': ' + wordCounts[index]);
            }
        }
    }
    
    function countWordsInText(text) {
        var words = text
            .toString()
            .toLowerCase()
            .split(/W+/)
            .sort();
        for (var index in words) {
            var word = words[index];
            if (word) {
                wordCounts[word] = 
                    (wordCounts[word]) ? wordCounts[word] + 1 : 1;
            }
        }
    }
    
    fs.readdir(filesDir, function(err, files) {
        if (err) throw err;
        for (var index in files) {
            var task = (function(file) {
                return function() {
                    fs.readFile(file, function(err, text) {
                        if (err) throw err;
                        countWordsInText(text);
                        checkIfComplete();
                    });
                }
            })(filesDir + '/' + files[index]);
            tasks.push(task);
        }
        for (var task in tasks) {
            tasks[task]();
        }
    });
  • 相关阅读:
    多表关联 update
    pdf转成图片
    JS中也可以使用JSTL和EL标签
    JSTL String时间转成 date
    SQL函数创建错误
    使用 itext、flying-saucer 实现html转PDF(转)
    Redis 命令参考
    1、课程介绍
    layui 弹出框提交表单
    一张图解析
  • 原文地址:https://www.cnblogs.com/sumuzhe/p/7468778.html
Copyright © 2020-2023  润新知