Проблема с синхронным выполнением запросов в cassandra-драйвере (Node.js) - PullRequest
1 голос
/ 18 января 2020

Я пытаюсь создать во время выполнения пространства ключей и таблицы внутри них, используя cassandra-driver реализацию узла, поддерживаемую datastax.

В документации ( здесь ) указано, что есть путь syn c для вызова метода execute(), который должен блокировать выполнение до тех пор, пока не будет возвращен результат запроса.

Я думаю, что примеры (как для syn c, так и для asyn c раздел для Node.js), связанный с этим url , предназначен только для асинхронного c выполнения, поскольку они не блокировались до тех пор, пока не был возвращен результат.

Я что-то упустил или невозможно добиться синхронного выполнения запроса с драйвером Node.js?

1 Ответ

1 голос
/ 22 января 2020

Node.js библиотеки, которые используют ввод / вывод, как правило, только asyn c. Это относится ко всем / большинству драйверов БД.

Учитывая, как работает Node.js событие l oop, выполнение syn c обычно не то, что вам нужно.

Если вам нужен синтаксис, максимально удобный для синхронного выполнения в Node.js, вам следует использовать asyn c functions :

async function doSomething(client) {
  await client.execute(query1);
  // ...
  await client.execute(query2);
  await client.execute(query3);
}
...