Javascript Node.js和Knex.js Promise{<;pending>;}的简单输出
我今天有个小问题。我还发现了类似的话题,不幸的是,这些话题对我没有帮助。 我想用Knex加载数据并进一步使用它。在第一个日志Javascript Node.js和Knex.js Promise{<;pending>;}的简单输出,javascript,node.js,knex.js,Javascript,Node.js,Knex.js,我今天有个小问题。我还发现了类似的话题,不幸的是,这些话题对我没有帮助。 我想用Knex加载数据并进一步使用它。在第一个日志console.log(channel['name'])中,在then函数中,我得到了想要的名称,但在最后一个控制台日志console.log(channel)我只收到消息Promise{}。 使用Node.js和Knex.js以这种方式获取数据并进一步使用它的最简单方法是什么 let channel = knex("channels").where({
console.log(channel['name'])
中,在then函数中,我得到了想要的名称,但在最后一个控制台日志console.log(channel)代码>我只收到消息Promise{}
。
使用Node.js和Knex.js以这种方式获取数据并进一步使用它的最简单方法是什么
let channel = knex("channels").where({
twitch_id: twitchID
}).first().then(function (channel) {
if (channel) {
console.log(channel['name'])
return channel;
}
}).catch(function (error) {
console.log(error);
});
console.log(channel);
这个软件包帮助解决了我的问题:
因此,从第一页开始,一切都不起作用@jonrsharpeYou必须将控制台.log
调用移动到中,然后
回调,这是没有办法的。你必须以这样或那样的方式等待异步结果,它不会立即可用。但是我需要稍后的数据。我如何等待异步@“以后”是什么意思?将以后应该运行的所有代码(当加载通道数据时)放在then
回调中-这就是承诺的工作方式。例如:我将let`name=channel['name']')放在'then'函数中,因为脚本的其余部分需要名称,但脚本的其余部分总是“未定义”名称。