我正在使用nodegit创建一个基于 git 提交的自定义 CHANGELOG 生成器(我不太喜欢现有的类似项目,至少在理论上它是一个非常简单的工具)。
console.log
我现在的问题是,当它位于第二层承诺时,我似乎无法显示任何输出。
此代码显示第一个console.log
条目,但第二个条目消失在网络空间中。它没有显示任何错误或任何东西,只是没有出现在控制台中。
git.Repository.open(repo_root).then(function (repo_handle) {
repo_handle.Tag.list(repo_handle).then(function (tag_list) {
console.log("THIS SHOWS"); // <--- Shows
repo_handle.getTagByName(tag_list[0]).then(function (tag) {
console.log("THIS DOES NOT"); // <--- Doesn't show
});
});
});
只是为了验证问题不在getTagByName
函数中,下面的代码可以正常工作并输出THIS SHOWS
,所以它与将日志记录函数放在承诺的第二层有关。
git.Repository.open(repo_root).then(function (repo_handle) {
repo_handle.getTagByName('v0.0.1').then(function (tag) {
console.log("THIS SHOWS");
});
});
顺便说一句,我尝试了相同代码的几个不同版本,例如使用return repo_handle.Tag.list(repo_handle)
and then(tag_list)
,但结果是相同的。
据我所知,代码实际上没有任何错误或任何东西,代码似乎工作得很好,因为我没有收到任何错误,但如果console.log
不能正常工作,那么它可能就是这种情况它也没有向我显示错误...