调用Javascript对象时返回空
我的一段代码调用Javascript对象时返回空,javascript,node.js,faunadb,Javascript,Node.js,Faunadb,我的一段代码 const channels = fauna.paginate(q.Match(q.Index("channels"), "true")) // Query FaunaDB database for channel list => create constant called users containing results const channelList = channels.each(function (page) { //
const channels = fauna.paginate(q.Match(q.Index("channels"), "true")) // Query FaunaDB database for channel list => create constant called users containing results
const channelList = channels.each(function (page) {
// Logs the page's contents,
// for example: [ Ref(Collection("test"), "1234"), ... ]
console.log(page);
});
工作正常,表现正常。然而,当我试图从代码中的其他地方调用“channelList”时,它返回{}
第一段代码中的console.log也会返回它应该返回的内容,因此我认为第一段代码没有任何问题
下面是一段代码,我试图调用这个对象
let options = {
options: {
debug: config.twitchConfig.options.debug
},
connection: {
reconnect: config.twitchConfig.options.reconnect,
secure: config.twitchConfig.options.secure
},
identity: {
username: config.twitchConfig.connection.username,
password: config.twitchConfig.connection.password
},
channels: [JSON.stringify(channelList)] // Attempt to call here, Returns {} (Empty object)
};
有什么我遗漏的吗?一开始这可能吗?如果不可能的话,我还能用什么方法来达到同样的效果
编辑:据我所知,channelList是基于页面响应的,页面响应似乎是该函数的私有响应,不能在函数之外引用。如何使其在函数外部可引用,或创建可在包含相同信息的函数外部访问的常量/变量?channelList不是函数,更像是打印通道的函数的结果。。因此,在打印分配给它的内容后,就是结果。。 尝试将其假定为函数,然后调用它:
const channelList = ()=>{
channels.each(function (page) {
// Logs the page's contents,
// for example: [ Ref(Collection("test"), "1234"), ... ]
console.log(page);
});
};
channelList();
假设代码本身做了您希望它做的事情,这应该可以完成工作经过多次尝试和错误后,我的回答比我或我与之交谈过的任何人想象的要简单得多 如果您遇到与我相同的问题,这里有一个关于如何自己解决问题的分步指南
var channelList声明变量代码>设置它的代码上方的某个位置
channelList=page设置先前声明的变量
console.log(channelList)代码>只是为了确保它能正常工作
。每个
?你是说forEach吗?如果是,请注意它返回未定义。或者,每个
都是一个库方法?@evolutionxbox使用forEach时,它只返回“channels.forEach不是函数”,这就是为什么它没有在那里使用。第一个代码片段中的方式似乎很好,所以我猜它是faunadb Library的一部分。一个控制台日志返回未定义的结果,所以可以尝试将返回的内容放入每个方法?@evolutionxbox抱歉,我大多数时候都很笨。你所说的返回的东西是什么意思?还有console.log(第页);也就是说,第一个代码段返回['#sniperbotontwitch'],这是它应该返回的,但是当在通道外部调用相同的常量时,它返回{}或[object object],而且,我已经更新了包含我对问题可能是什么的评估的帖子通道的类型是什么?channels[Symbol.iterator]
返回什么?这让我更接近一个答案,谢谢!但是,现在当进一步调用该常量时,它的内容是()=>{channels.each(function(page){//记录页面的内容,//例如:[Ref(Collection(“test”),“1234”),…]console.log(page);};}而不是一个简单的['DATA'],您希望第二次发生什么?您正在创建函数的字符串。。如果要打印通道值,请调用函数outside options。。给频道设置频道是的,我正在打印页面的值。你的回答让我更接近我想要的答案。谢谢你,我会继续玩不同的东西,希望我能得到我想要的