2016-01-26 1 views
1

У меня возникли проблемы с использованием nodegit (v0.9.0). Любой .js-скрипт, который require s пакет будет висеть вечно и не выйти. Пример:require ("nodegit") предотвращает запуск скрипта

var nodegit = require('nodegit'); 

console.log("hello world"); 

Выполнение этого в командной строке приведет к ожидаемому выходу консоли, но сценарий никогда не выйдет. Мне нужно использовать ctrl-C для возврата из скрипта.

Однако, если я закомментировать требуют заявление:

// var nodegit = require('nodegit'); 

console.log("hello world"); 

вещи работают нормально.

Я столкнулся с этим поведением как на Windows (7), так и на Linux (CentOS 7.1.1503). Обе машины используют v4.2.0 узла. Я предполагаю, что это не ошибка, и что я неправильно использую библиотеку, но я не понимаю, что я могу делать неправильно.

ответ

2

It's a bug.

Чтобы устранить проблему, вы можете вызвать process.exit(), когда вы уверены, что нет ожидающих ввода-вывода.

+1

FYI, то, что предотвратит процесс узла из существующих, включает в себя ожидающий таймер или интервал (на который не было вызвано '.unref()') или живой сервер, прослушивающий входящие соединения или открытый сокет. – jfriend00