gpt4 book ai didi

javascript - Console.log 未显示在第二层 Node promise 中

转载 作者:行者123 更新时间:2023-11-30 14:17:01 24 4
gpt4 key购买 nike

我正在使用 nodegit 创建一个基于 git 提交的自定义 CHANGELOG 生成器(我不太喜欢现有的类似项目,而且它是一个非常简单的工具,至少在理论上是这样)。

我现在的问题是,我似乎无法让 console.log 在第二层 promise 中显示任何输出。

此代码显示第一个 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,所以它与将promises 第二层的日志记录功能。

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)then(tag_list),但结果是一样的。

据我所知,代码实际上没有任何错误或任何东西,代码似乎工作得很好,因为我没有收到任何错误,但如果 console.log 工作不正常,那么它也可能没有向我显示错误...

最佳答案

这可能意味着 repo_handle.getTagByName('v0.0.1').then(function (tag) { 永远不会启动。尝试这样的事情:

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
}).catch(error => {
console.log("gotcha! ", error);
});
});
});

console.log本身与promise嵌套的深度无关

来自提问者的更新

对于那些后来发现这个问题的人来说,实际问题原来是 repo_handle.Tag 是未定义的,我发现它感谢为错误添加了一个 catch ,因此接受这个答案。

有效的新更新代码如下:

let nodegit = require('nodegit');
let path = require('path');

var repo_root = path.resolve(__dirname, './.git');
let repo = null;

nodegit.Repository.open(repo_root)
.then(function (repo_handle) {
repo = repo_handle;
return nodegit.Tag.list(repo_handle);
})
.then(function (tag_list) {
return repo.getTagByName(tag_list[0]);
})
.then(function (tag) {
console.log(tag.message());
})
.catch(function (e) {
console.error(e);
});

关于javascript - Console.log 未显示在第二层 Node promise 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53429723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com