subtest1(conn, values) je generátor. yield ing objektu generátoru neprovede jeho tělo. To znamená, že generovaný generátor zůstane pozastavený a vyžadovalo by to volání next() metoda pro první yield k dosažení. Neexistují žádná explicitní ani implicitní volání funkce next() v Ukázce kódu 2 , a to je důvod conn.query(...) není proveden.
Co třeba yield* subtest1(conn, values)
? Z odkazované stránky:
Stále se provede subtest líně.
Alternativním řešením je zapnout subtest do běžné funkce a vrátí výsledek conn.query(...) (za předpokladu, že potřebujete provést pouze jeden dotaz):
function subtest1(conn, values) {
return conn.query("INSERT INTO version SET ?", values);
}