这是我的第一个Node应用程序/脚本,我试图理解为什么在结尾处附加
.then(console.log)
时与仅使用console.log(list)
时会得到不同的结果。
如果图片无法加载,请查看代码片段。// Generate list
const list = r.getSubreddit('AskReddit')
.getTop({ time: 'all', limit: 1 })
.map(post => ({
title: post.title,
url: post.url,
upvotes: post.ups
}))
.then(console.log);
// console.log(list);
我收到了这个错误信息:
internal/util/inspect.js:373
const symbols = Object.getOwnPropertySymbols(value);
^
TypeError: 'ownKeys' on proxy: trap result did not include 'prototype'
at Function.getOwnPropertySymbols (<anonymous>)
at getKeys (internal/util/inspect.js:373:26)
at formatRaw (internal/util/inspect.js:617:12)
at formatValue (internal/util/inspect.js:540:10)
at inspect (internal/util/inspect.js:197:10)
at Object.formatWithOptions (util.js:84:12)
at Console.(anonymous function) (internal/console/constructor.js:274:15)
at Console.log (internal/console/constructor.js:284:61)
at Object.<anonymous> (/Users/ik/Documents/Personal/list.js:27:9)
at Module._compile (internal/modules/cjs/loader.js:799:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:810:10)
at Module.load (internal/modules/cjs/loader.js:666:32)
at tryModuleLoad (internal/modules/cjs/loader.js:606:12)
at Function.Module._load (internal/modules/cjs/loader.js:598:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:862:12)
at internal/main/run_main_module.js:21:11
list
不是一个数组,而是一个 Promise。至于错误,我猜它与 bluebird Promise 的实现方式有关,这使得它们在控制台中原始记录变得棘手。 - Patrick Robertssnoowrap
本身使用Proxy
来进行方法链接语法,并且它们的实现不支持对象的一般检查。只需按照他们的文档适当地使用 API 即可。 - Patrick Roberts