Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 02.06.2012, 20:02
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

На самом деле уже есть похожее решение. Просто мне захотелось попробовать самому
Ответить с цитированием
  #12 (permalink)  
Старый 04.06.2012, 21:13
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Gvozd
По-моему должно быть очевидно, что любая библиотека для Node.Js должна быть обязательно ассинхронной(там где нужно и возможно, разумеется), и лишь только во вторую очередь, в ней возможно может быть синхронный вариант для всех ее асинхронных функций.
Странное утверждение. Если говорить про либу от ТС - да, здесь в первую очередь должен быть асинхронный вариант. Асинхронность нужна там, где нода обращается к внешним ресурсам (база, файловая система), включая всякие обертки вокруг этого (как Recursive Walker), и при чистых тяжелых вычислениях (числа фибоначчи).
Если вычисления выполняются до 3-5 мс: добавлять асинхронность нет смысла.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #13 (permalink)  
Старый 04.06.2012, 21:45
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Оговорка в скобках написана невидимыми буквами?
Ответить с цитированием
  #14 (permalink)  
Старый 04.06.2012, 21:52
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Ога ^^
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #15 (permalink)  
Старый 05.06.2012, 10:45
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от DreamTheater
Только что написал асинхронный аналог. Время полной отработки внутри каталога C:\Windows ~22 секунды.
Исходники покажите.
Ответить с цитированием
  #16 (permalink)  
Старый 05.06.2012, 12:07
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

Сообщение от Kolyaj Посмотреть сообщение
Исходники покажите.
var EventEmitter = require('events').EventEmitter,

    fs = require('fs'),
    path = require('path'),
    util = require('util');

module.exports = (function () {
    function Walker() {
        EventEmitter.call(this);
    }

    util.inherits(Walker, EventEmitter);

    Walker.prototype.walk = function (from) {
        var root = path.resolve(from),

            callback = function (error, tree) {
                if (error !== null) {
                    return this.emit('error', error);
                }

                tree.forEach(function (leaf) {
                    var branch = path.join(root, leaf),

                        callback = function (error, stats) {
                            if (error !== null) {
                                return this.emit('error', error);
                            }

                            if (stats.isFile()) {
                                this.emit('file', branch);
                            } else if (stats.isDirectory()) {
                                this.walk(branch);
                            }
                        }.bind(this);

                    fs.stat(branch, callback);
                }, this);
            }.bind(this);

        this.emit('directory', root);

        fs.readdir(root, callback);

        return this;
    };

    return Walker;
}());
Ответить с цитированием
  #17 (permalink)  
Старый 05.06.2012, 12:10
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А как вы время выполнения вычислили, если у вас окончание перебора нигде не фиксируется?
Ответить с цитированием
  #18 (permalink)  
Старый 05.06.2012, 12:32
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

Так, на часах засек
Ответить с цитированием
  #19 (permalink)  
Старый 05.06.2012, 12:42
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сделайте для тренировки событие end. Код значительно усложнится.
Ответить с цитированием
  #20 (permalink)  
Старый 05.06.2012, 12:43
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

Сообщение от Kolyaj Посмотреть сообщение
Сделайте для тренировки событие end. Код значительно усложнится.
Да-да, именно поэтому я пока его не выкладываю. Хочу сделать более красиво все.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Javascript-разработчик (ExtJS, node.js), 50 000 - 80 000, СПб IrinaS Работа 0 03.04.2012 20:40
PHP + Node.JS Diego Серверные языки и технологии 4 19.02.2012 22:17
Node.js Kolyaj Серверные языки и технологии 49 24.05.2010 22:29
node.js передача параметров серверу ,пример Kilowatt Серверные языки и технологии 1 12.04.2010 19:18