让我们看看这个选择:
getSession(<connectionOptions>)
.then(s => { return s.getSchema('<schema>') } )
.then(s => { return s.getTable('<table>') } )
.then(t => t.select('*') // or .select('COUNT(*)')
.where('<where>')
.execute(row => myHandler(row, <other params>)));
//
function myHandler(row, <other params>) {
...
}我有三个问题,在阅读https://dev.mysql.com/doc/x-devapi-userguide/en和在互联网上搜索之后,我没有发现任何发现:
发布于 2019-02-16 21:02:32
then之后添加execute将让您知道执行已经完成。then时,您可以引用计数器来获得结果。第二个选项-基于这,它看起来像是在execute将所有结果解析为数组之后的最后一个then。因此,如果只需要在得到所有结果之后才进行操作,则不要在处理程序函数中添加任何内容,只需添加then并在那里执行所需的操作。.then(t => t.count('*')或.then(t => t.select('*').count()。我从没用过xdevapi,看上去很棒。如果您只将它用于关系操作,我建议您查看一下肯奈
发布于 2019-02-16 22:31:20
为记录:
在.execute之后,您可以添加一个.then,您可以通过函数(受影响的行、生成的ID、警告等)访问一些有用的信息。当然,您可以捕捉到执行的结束:
.execute() .then(info => myInfoHandler(info,<other params>) ... if (info.getAffectedRowsCount()==0) { //empty result set }
这样您就不需要计数(*)。
https://stackoverflow.com/questions/54726781
复制相似问题