如果我启动一个Node REPL并调用返回Promise的函数,该函数(显然)立即返回,并在控制台中显示有关Promise的一些信息:
有没有办法让Node同步等待Promise解决(或拒绝),以便我可以将结果打印到控制台?
我看到类似this one的问题,但那里的解决方案都建议在结果上附加
$> node
> var foo = () => new Promise((resolve, reject) => setTimeout(resolve('yay'), 1000));
undefined
> foo().then(console.log)
Promise {
<pending>,
domain:
Domain {
domain: null,
_events: { error: [Function: debugDomainError] },
_eventsCount: 1,
_maxListeners: undefined,
members: [] } }
有没有办法让Node同步等待Promise解决(或拒绝),以便我可以将结果打印到控制台?
我看到类似this one的问题,但那里的解决方案都建议在结果上附加
.then()
调用来完成我想要的操作(例如记录日志)。然而,这似乎行不通--请注意,我在我的示例中已经这样做了,但我从未得到任何日志输出,因此我需要一些其他机制来使进程持续运转足够长的时间,以便我可以看到输出(例如示例中的字符串'yay'
)。
await
。 - hisenerthen()
方法来处理其解析出的值。 - Thomasawait
,我必须处于一个async
上下文中,而且我无法弄清如何创建一个不仅仅打印承诺并退出的async
上下文。 - Tomas Aschan