Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Javascript seltsames Generator-Ergebnis-Unterfunktionsverhalten

subtest1(conn, values) ist ein Generator. yield Das Erstellen eines Generatorobjekts führt seinen Körper nicht aus. Das heißt, der ausgegebene Generator bleibt suspendiert und würde einen Aufruf von next() erfordern Methode für den ersten yield zu erreichen. Es gibt keine expliziten oder impliziten Aufrufe von next() in Codebeispiel 2 , und das ist der Grund conn.query(...) wird nicht ausgeführt.

Wie wäre es mit yield* subtest1(conn, values) ? Von der verlinkten Seite:

Es wird trotzdem subtest ausführen faul.

Eine alternative Lösung besteht darin, subtest umzuschalten in eine reguläre Funktion umwandeln und das Ergebnis von conn.query(...) zurückgeben (vorausgesetzt, Sie müssen nur eine Abfrage durchführen):

function subtest1(conn, values) {
    return conn.query("INSERT INTO version SET ?", values);
}