使用带有REPL的应用程序时如何解决承诺
我有一个基本的Node webserver(Koa.js +一个ORM)。我喜欢用REPL开始它,这意味着我可以像CLI工具一样使用我的应用程序。
我的所有查询都返回Promises,但我不知道如何在REPL中解决它们。我该如何解决?
例如,以下代码(fetch()查询数据库并返回一个promise)只给出这个输出Promise {_bitField: 4325376, _fulfillmentHandler0: undefined, _rejectionHandler0: undefined …}
Transaction.where('reference', '1').fetch().then((res) => return res)
回答如下:
更新:Node.js现在默认执行此操作并解析promise
老答案:
您无法正确解决它们 - 但您可以提取它们对全局范围的引用:
> Transaction.where('reference', '1').fetch().then((res) => out = res)
[Object Promise]
> out
/* your data outputted here since the global was assigned to*/
我们可能会在未来的节点中允许在REPL中使用await
,这样可以更清晰地解决问题。
使用带有REPL的应用程序时如何解决承诺
我有一个基本的Node webserver(Koa.js +一个ORM)。我喜欢用REPL开始它,这意味着我可以像CLI工具一样使用我的应用程序。
我的所有查询都返回Promises,但我不知道如何在REPL中解决它们。我该如何解决?
例如,以下代码(fetch()查询数据库并返回一个promise)只给出这个输出Promise {_bitField: 4325376, _fulfillmentHandler0: undefined, _rejectionHandler0: undefined …}
Transaction.where('reference', '1').fetch().then((res) => return res)
回答如下:
更新:Node.js现在默认执行此操作并解析promise
老答案:
您无法正确解决它们 - 但您可以提取它们对全局范围的引用:
> Transaction.where('reference', '1').fetch().then((res) => out = res)
[Object Promise]
> out
/* your data outputted here since the global was assigned to*/
我们可能会在未来的节点中允许在REPL中使用await
,这样可以更清晰地解决问题。