subtest1(conn, values)
est un générateur. yield
ing un objet générateur n'exécute pas son corps. Autrement dit, le générateur généré reste suspendu et nécessiterait un appel au next()
méthode pour le premier yield
être atteint. Il n'y a pas d'appels explicites ou implicites à next()
dans Échantillon de code 2 , et c'est la raison pour laquelle conn.query(...)
n'est pas exécuté.
Que diriez-vous de yield* subtest1(conn, values)
? À partir de la page liée :
Il exécutera toujours subtest
paresseusement.
Une solution alternative consiste à activer subtest
dans une fonction normale et renvoie le résultat de conn.query(...)
(en supposant que vous n'ayez besoin d'effectuer qu'une seule requête) :
function subtest1(conn, values) {
return conn.query("INSERT INTO version SET ?", values);
}