Mysql
 sql >> Database >  >> RDS >> Mysql

Javascript strano generatore produce il comportamento della sottofunzione

subtest1(conn, values) è un generatore. yield ing un oggetto generatore non esegue il suo corpo. Cioè, il generatore prodotto rimane sospeso e richiederebbe una chiamata a next() metodo per il primo yield da raggiungere. Non ci sono chiamate esplicite o implicite a next() in Esempio di codice 2 , e questo è il motivo conn.query(...) non viene eseguito.

Che ne dici di yield* subtest1(conn, values) ? Dalla pagina collegata:

Eseguirà comunque subtest pigramente.

Una soluzione alternativa è quella di attivare subtest in una funzione regolare e restituisce il risultato di conn.query(...) (supponendo che tu debba eseguire solo una query):

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