Я построил эту функцию в NodeJs,обработки возвращаемых значений в обещаниях nodejs
var Git = require('nodegit');
var fse = require('fs-extra');
var path = require('path');
var fs = require('fs');
var repoPath = 'D:\\sample'
function gitCommitHistory(repoPath, callbackGitCommitHistory) {
try {
var open = Git.Repository.open;
var commitList = [];
open(repoPath)
.then(function(repo) {
return repo.getMasterCommit();
})
.then(function(firstCommitOnMaster) {
var history = firstCommitOnMaster.history();
history.on("commit", function(commit) {
if (commit === 'undefined') {
callbackGitCommitHistory(null, commitList);
}
var author = commit.author();
commitList.push({commitAuthor:author.name(),commitAuthorEmail:author.email(),
commitMessage:commit.message(), commitSha:commit.sha(), commitDate:commit.date()});
});
history.on("error", function(err){
console.log(err)
})
history.on("end", function(){
callbackGitCommitHistory(null, commitList);
});
history.start();
});
} catch (error) {
callbackGitCommitHistory(error);
}
};
Я построил эту функцию с помощью модуля «Nodegit». Они используют обещания в качестве обработчика обратного вызова.
В функции я извлекаю все фиксации, выполненные пользователем в репозитории и отправляя их в качестве ответа на вызывающий веб-сервис.
Функция работает нормально, если есть по крайней мере одна фиксация, (i.e) repo.getMasterCommit возвращает историю фиксации. Но если я дам repoPath новому репо с нулевыми коммитами, тогда из этой функции ничего не возвращается, поэтому я не могу отправить ответ на вызывающую веб-службу. Помощь Pls о том, как справиться с этой ситуацией !!!!!!!!
Я не вижу, что вы ловите «ошибку» или пустой ответ от 'getMasterCommit'. Вы должны сделать эту проверку, и я предполагаю, что вы продолжаете 'callbackGitCommitHistory (ошибка)' – AhmadAssaf