cassandra-driver 中的同步查询执行问题 (Node.js)
Problem with Synchronous query execution in cassandra-driver (Node.js)
我正在尝试使用由 datastax 维护的 cassandra-driver
节点实现在运行时创建键空间和其中的表。
在文档 (here) 中指出,有一种同步方式可以调用 execute()
方法,该方法应该阻止执行,直到返回查询结果。
我认为在此 url 链接的示例(Node.js 的同步和异步部分)仅用于异步执行,因为它们在返回结果之前不会阻塞。
我遗漏了什么或无法使用 Node.js 驱动程序同步执行查询?
Node.js 使用 I/O 的库通常只是异步的。 all/most 数据库驱动程序就是这种情况。
鉴于 Node.js event loop 的工作方式,同步执行通常不是您想要的。
如果你想要在 Node.js 中同步执行的语法,你应该使用 async functions:
async function doSomething(client) {
await client.execute(query1);
// ...
await client.execute(query2);
await client.execute(query3);
}
我正在尝试使用由 datastax 维护的 cassandra-driver
节点实现在运行时创建键空间和其中的表。
在文档 (here) 中指出,有一种同步方式可以调用 execute()
方法,该方法应该阻止执行,直到返回查询结果。
我认为在此 url 链接的示例(Node.js 的同步和异步部分)仅用于异步执行,因为它们在返回结果之前不会阻塞。
我遗漏了什么或无法使用 Node.js 驱动程序同步执行查询?
Node.js 使用 I/O 的库通常只是异步的。 all/most 数据库驱动程序就是这种情况。
鉴于 Node.js event loop 的工作方式,同步执行通常不是您想要的。
如果你想要在 Node.js 中同步执行的语法,你应该使用 async functions:
async function doSomething(client) {
await client.execute(query1);
// ...
await client.execute(query2);
await client.execute(query3);
}