【发布时间】:2021-02-07 07:19:41
【问题描述】:
我的一段代码
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 是基于页面响应的,看起来页面响应是该函数私有的,不能在函数之外引用。我该怎么做才能使其在函数外部可引用,或者创建一个可以在包含相同信息的函数外部访问的常量/变量
【问题讨论】:
-
.each?你的意思是forEach?如果是这样,请注意它返回未定义。还是each是库方法? -
@evolutionxbox 在使用 forEach 时只返回“channels.forEach 不是函数”,这就是为什么它没有在那里使用。它在第一个 sn-p 中的方式似乎工作正常,所以我猜它是区区数据库库的一部分
-
控制台日志返回未定义,所以也许可以尝试将返回的内容放入
each方法中? -
@evolutionxbox 抱歉,我大部分时间都很笨。返回的东西是什么意思?另外,console.log(page);那是在第一个 sn-p 返回 ['#sniperbotontwitch'] 这是它应该返回的内容,但是当在 channels.each 函数之外调用相同的常量时,它返回 {} 或 [object object] 另外,我已经更新包含我对问题可能是什么的评估的帖子
-
channels的类型是什么?channels[Symbol.iterator]返回什么?
标签: javascript node.js faunadb