Как стать автором
Обновить

Vow: самые быстрые промисы

Время на прочтение1 мин
Количество просмотров13K
Хочу предоставить вашему вниманию библиотеку Vow, которую написал мой коллега Дмитрий Филатов dfilatov.

Библиотека реализует Promises/A+, работает очень быстро и требует малого объема памяти. По тестам производительности сильно опережает Q, но при этом сохраняет асинхронную манеру работы.

Работа с Vow выглядит так же просто, как работа с Q. Из недостатков (по сравнению с Q) можно лишь выделить отсутствие progress.

Пример кода с использованием Vow:
function readFile(filename, encoding) {
    var promise = Vow.promise();
    fs.readFile(filename, encoding, function(err, data) {
        if (err) return promise.reject(err);
        promise.fulfill(data);
    });
    return promise;
}
Vow.all([readFile('test1.txt', 'utf8'), readFile('test2.txt', 'utf8')]).then(function(results) {
    console.log(results.join('\n'));
});

Бенчмарк, который отражает, насколько Q медленная библиотека (тестируется создание последовательных промисов):
время операций в секунду
Q 54.891ms 18
When 3.484ms 287
Vow 1.158ms 864

Также для Vow реализована библиотека работы с файловой системой: vow-fs: https://github.com/dfilatov/vow-fs.

NPM Пакет: vow
Репозиторий: https://github.com/dfilatov/jspromise
Теги:
Хабы:
Всего голосов 43: ↑36 и ↓7+29
Комментарии19

Публикации

Истории

Работа

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань