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);
}