subtest1(conn, values)
jest generatorem. yield
Tworzenie obiektu generatora nie wykonuje jego ciała. Oznacza to, że wygenerowany generator pozostaje zawieszony i wymagałby wywołania funkcji next()
metoda dla pierwszego yield
do osiągnięcia. Nie ma jawnych ani niejawnych wywołań next()
w Przykładzie kodu 2 i to jest powód, dla którego conn.query(...)
nie jest wykonywany.
Co powiesz na yield* subtest1(conn, values)
? Z połączonej strony:
Nadal wykona subtest
leniwie.
Alternatywnym rozwiązaniem jest włączenie subtest
do zwykłej funkcji i zwróć wynik conn.query(...)
(zakładając, że wystarczy wykonać tylko jedno zapytanie):
function subtest1(conn, values) {
return conn.query("INSERT INTO version SET ?", values);
}