Wenn Skript unten beginnend, bekam ich einen Fehler, die `waitForIndex` funktioniert nicht richtig
Something bad heppened while waiting for index created
Index `createdAt` was not found on table `olive.todos`
r.table("todos").indexWait("createdAt")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
aber ausgehend Skript wieder auf
stecken, ich habe kein Problem.Ist das RethinkDB Problem oder meins? Und sag mir die Lösung.
const createIndex = (conn, tableName, indexName) =>
r.table(tableName).indexList().contains(indexName)
.do(containsIndex =>
r.branch(
containsIndex,
{ created: 0 },
r.table(tableName).indexCreate(indexName)
)
)
...
const waitForIndex = (conn, tableName, indexName) =>
r.table(tableName).indexWait(indexName)
...
export const setup = startApp => {
r.connect(config.rethinkdb)
...
.then(conn => {
Promise.all([
createIndex(conn, 'todos', 'createdAt'),
createIndex(conn, 'days', 'date'),
]);
return conn;
})
.then(conn =>
Promise.all([
waitForIndex(conn, 'todos', 'createdAt'),
waitForIndex(conn, 'days', 'date'),
])
)
...
};
Danke! Jetzt verstehe ich, was das Problem ist. Um sicherzustellen, dass 'Return conn' aufgerufen wird, nachdem' Promise.all' aufgerufen wurde, muss mit 'then' verkettet werden. – nishitani
Können Sie bitte die Antwort akzeptieren :). Vielen Dank – kureikain